github.com/keysonZZZ/kmg@v0.0.0-20151121023212-05317bfd7d39/third/kmgSubmail/kmgSubMessage.go (about) 1 package kmgSubmail 2 3 import ( 4 "github.com/bronze1man/kmg/encoding/kmgJson" 5 "github.com/bronze1man/kmg/errors" 6 "github.com/bronze1man/kmg/kmgDebug" 7 "github.com/bronze1man/kmg/kmgLog" 8 "github.com/bronze1man/kmg/kmgStrconv" 9 "io/ioutil" 10 "net/http" 11 "net/url" 12 ) 13 14 type Message struct { 15 Project MessageProject 16 To string //手机号 17 Vars string // 也可用json传入多个变量名哟 18 19 } 20 21 type SubMessage struct { 22 Appid string 23 Signature string 24 } 25 26 var MessageConfig = SubMessage{} 27 28 type MessageProject string 29 30 func XSendMessage(message Message) (err error) { 31 subMessageUrl := "https://api.submail.cn/message/xsend.json" 32 kmgDebug.Println(message.Vars) 33 response, err := http.PostForm(subMessageUrl, url.Values{ 34 "appid": {MessageConfig.Appid}, 35 "signature": {MessageConfig.Signature}, 36 "to": {message.To}, 37 "project": {kmgStrconv.InterfaceToString(message.Project)}, 38 "vars": {message.Vars}, 39 }) 40 defer response.Body.Close() 41 if err != nil { 42 return err 43 } 44 body, err := ioutil.ReadAll(response.Body) 45 if err != nil { 46 return err 47 } 48 kmgLog.Log("SubMessage", string(body), message) 49 data := kmgJson.MustUnmarshalToMapDeleteBOM(body) 50 if data["status"] == "error" { 51 return errors.New(kmgStrconv.InterfaceToString(data["msg"])) 52 } 53 return nil 54 55 } 56 57 func MustXSendMessage(message Message) { 58 err := XSendMessage(message) 59 if err != nil { 60 panic(err) 61 } 62 }