SUBMAIL GO SDK


引入方式


  1. 下载SDK源码,然后放在$GOPATH/src目录下.
  2. 修改文件夹名为submail_go_sdk。
  3. 在项目下进行包引用。如短信包:import (sms "submail_go_sdk/submail/sms") / 邮件包 import (mail "submail_go_sdk/submail/mail")


下载


SUBMAIL_GO_SDK



文件目录索引


Submail
internationalsms
multixsend.go国际短信群发接口
send.go国际短信send接口
xsend.go国际短信xsend接口
mail
send.go邮件send接口
xsend.go邮件xsend接口
sms
multixsend.go国内短信群发接口
send.go国内短信send接口
xsend.go国内短信xsend接口
voice
multixsend.go语音群发接口
send.go语音send接口
xsend.go语音xsend接口
mms
xsend.go彩信信xsend接口
multixsend.go彩信群发接口
lib
lib.go处理http请求以及生成signature参数


开始使用


邮件 Mail 包


邮件服务 appid & appkey 请前往:https://www.mysubmail.com/chs/mail/apps

mail 数字签名模式 normal or md5 or sha1 ,normal = 明文appkey鉴权 ,md5 和 sha1 为数字签名鉴权模式


邮件 Send 接口


服务配置:

  • config := make(map[string]string)
  • config["appid"]="your_appid"
  • config["appkey"]="your_appkey"
  • config["signType"]="sha1"


使用指引:

方法名描述
CreateSend创建邮件Send 接口
AddTo添加邮件地址到 To map,第一个必选参数:邮件地址。第二个可选参数:收件人姓名
SetSender设置发件人,第一个必选参数:邮件地址。第二个可选参数:显示名称
SetReply设置回复地址
AddCc添加抄送地址
AddBcc添加密送地址
SetSubject设置邮件标题
SetText设置文本邮件内容
SetHtml设置 HTML 邮件内容
AddVar添加文本变量到 vars map
AddLink添加超链接变量到 links map
AddHeaders添加自定义邮件头指令到 headers map
AddAttachments添加附件到 attachments map,传多个附件多次调用即可。
SetAsynchronous设置异步选项,该值设为 true 时启用异步发送模式
SetTag设置自定义标记,此参数用于标记一次 API 请求(最大长度不超过 32 位)添加了 tag 参数的 API 请求,会在所有的 SUBHOOK 事件中携带此参数。
Send发送邮件


代码示列:

使用 MailSend 类提交 mail/send 发送一封简单的邮件
func MailSend()  {
 config := make(map[string]string)
 config["appid"]="your_appid"
 config["appkey"]="your_appkey"
 config["signType"]="sha1"
 submail := mail.CreateSend(config)
 submail.SetSender("service@submail.cn","submail")
 submail.AddTo("79463@qq.com","Leo")
 submail.SetSubject("test from go sdks 2")
 submail.AddCc("drimmestudio@gmail.com")
 submail.AddBcc("drimmestudio@me.com")
 submail.SetText("text from go sdks")
 submail.AddVar("name","leo")
 submail.AddLink("url","https://www.mysubmail.com")
 submail.AddHeaders("X-Mailer","SUBMAIL Golang SDK")
 submail.AddAttachments("/Users/leozhang/go/src/submail_go_sdk/test_attachment.png")
 submail.AddAttachments("/Users/leozhang/go/src/submail_go_sdk/test_attachment2.jpg")
 send := submail.Send()
 fmt.Println("Request result:",send)
}


邮件 xsend 接口


  • config := make(map[string]string)
  • config["appid"]="your_appid"
  • config["appkey"]="your_appkey"
  • config["signType"]="sha1"


使用指引:

方法描述
CreateXsend创建邮件xsend 接口
AddTo添加邮件地址到 To map,第一个必选参数:邮件地址。第二个可选参数:收件人姓名
SetSender设置发件人,第一个必选参数:邮件地址。第二个可选参数:显示名称
SetReply设置回复地址
AddCc添加抄送地址
AddBcc添加密送地址
SetSubject设置邮件标题
SetProject设置邮件项目标识
AddVar添加文本变量到 vars map
AddLink添加超链接变量到 links map
AddHeaders添加自定义邮件头指令到 headers map
SetAsynchronous设置异步选项,该值设为 true 时启用异步发送模式
SetTag设置自定义标记,此参数用于标记一次 API 请求(最大长度不超过 32 位)添加了 tag 参数的 API 请求,会在所有的 SUBHOOK 事件中携带此参数。
XSend发送邮件


代码示例:

使用 MAILXsend 类提交 mail/xsend 发送一封邮件。

func MailXsend()  {
 config := make(map[string]string)
 config["appid"]="your_appid"
 config["appkey"]="your_appkey"
 config["signType"]="sha1"
 submail := mail.CreateXsend(config)
 submail.SetSender("service@submail.cn","submail")
 submail.AddTo("79463@qq.com","Leo")
 submail.SetSubject("test from go sdks 2")
 submail.SetProject("Zx3LM")
 submail.AddCc("drimmestudio@gmail.com")
 submail.AddBcc("drimmestudio@me.com")
 submail.AddVar("name","leo")
 submail.AddLink("url","https://www.mysubmail.com")
 submail.AddHeaders("X-Mailer","SUBMAIL Golang SDK")
 submail.SetTag("xxxxxx")
 submail.SetAsynchronous(true)
 xsend := submail.Xsend()
 fmt.Println("Request result:",xsend)
}


短信 SMS 包


短信服务 appid & appkey 请前往:https://www.mysubmail.com/chs/sms/apps
  
短信数字签名模式 normal or md5 or sha1 ,normal = 明文appkey鉴权 ,md5 和 sha1 为数字签名鉴权模式


短信 send 接口


服务配置:

  • config := make(map[string]string)
  • config["appid"]="your_appid"
  • config["appkey"]="your_appkey"
  • config["signType"]="sha1"


使用指引:

方法描述
CreateSend创建短信send接口
SetTo设置手机联系人
SetContent设置短信正文,请注意:国内短信需要强制添加短信签名,并且需要使用全角大括号 “【签名】”标识,并放在短信正文的最前面
SetTag设置自定义标记,此参数用于标记一次 API 请求(最大长度不超过 32 位)添加了 tag 参数的 API 请求,会在所有的 SUBHOOK 事件中携带此参数。
Send发送短信


代码示列:

  func SMSSend() {
 // SMS 短信服务配置 appid & appkey 请前往:https://www.mysubmail.com/chs/sms/apps 获取
 config := make(map[string]string)
 config["appid"]="your_appid"
 config["appkey"]="your_appkey"
 // SMS 数字签名模式 normal or md5 or sha1 ,normal = 明文appkey鉴权 ,md5 和 sha1 为数字签名鉴权模式
 config["signType"]="sha1"
 //创建 短信 Send 接口
 submail := sms.CreateSend(config)
 //设置联系人 手机号码
 submail.SetTo("your_telephone")
 //设置短信正文,请注意:国内短信需要强制添加短信签名,并且需要使用全角大括号 “【签名】”标识,并放在短信正文的最前面
 submail.SetContent("【SUBMAIL】您的验证码是:2234,请在30分钟输入")
 //执行 Send 方法发送短信
 send := submail.Send()
 fmt.Println("短信 Send 接口:",send)
}


短信 Xsend 接口


服务配置:

  • config := make(map[string]string)
  • config["appid"]="your_appid"
  • config["appkey"]="your_appkey"
  • config["signType"]="sha1"


使用指引:

方法描述
CreateXsend创建短信xsend接口
SetTo设置手机联系人
SetProject设置项目Id
AddVar添加文本变量到 vars map
SetTag设置自定义标记,此参数用于标记一次 API 请求(最大长度不超过 32 位)添加了 tag 参数的 API 请求,会在所有的 SUBHOOK 事件中携带此参数。
XSend发送短信


代码示列:

func SMSXsend() {
 // SMS 短信服务配置 appid & appkey 请前往:https://www.mysubmail.com/chs/sms/apps 获取
 config := make(map[string]string)
 config["appid"]="your_appid"
 config["appkey"]="your_appkey"
 // SMS 数字签名模式 normal or md5 or sha1 ,normal = 明文appkey鉴权 ,md5 和 sha1 为数字签名鉴权模式
 config["signType"]="sha1"
 //创建 短信 Send 接口
 submail := sms.CreateXsend(config)
 //设置联系人 手机号码
 submail.SetTo("your_telephone")
    //设置短信模板id
 submail.SetProject("XV6HJ")
 //添加模板中的设置的动态变量。如模板为:【xxx】您的验证码是:@var(code),请在@var(time)分钟内输入。
 submail.AddVar("code","1234");
 submail.AddVar("time","5");
 //执行 Xsend 方法发送短信
 xsend := submail.Xsend()
 fmt.Println("短信XSend 接口:",xsend)


短信 mutilxsend 接口


服务配置:

  • config := make(map[string]string)
  • config["appid"]="your_appid"
  • config["appkey"]="your_appkey"
  • config["signType"]="sha1"


使用指引:

方法描述
CreateMultiXsend创建短信CreateMultiXsend接口
SetProject设置项目Id
CreateMulti设置多个发送对象信息
SetTo设置联系人手机号码
AddVar添加模板变量
AddTag添加项目标记,此参数用于标记一次 API 请求(最大长度不超过 32 位)添加了 tag 参数的 API 请求,会在所有的 SUBHOOK 事件中携带此参数。
MultiXsend发送短信


代码示列:

func SMSMultiXsend() {
 config := make(map[string]string)
 config["appid"]="your_appid"
 config["appkey"]="your_appkey"
 config["signType"]="sha1"
 submail := sms.CreateMultiXsend(config)
 submail.SetProject("XV6HJ")
 //添加第一组收件人
 multi1:=sms.CreateMulti();
 multi1.SetTo("133XXXXX");
 multi1.AddVar("code","1234");
 multi2.AddVar("time","10");
 //添加第二组收件人
 multi2:=sms.CreateMulti();
 multi2.SetTo("133XXXXX");
 multi2.AddVar("code","1234");
 multi2.AddVar("time","10");
 submail.AddMulti(multi1.Get());
 submail.AddMulti(multi2.Get());
 multixsend := submail.MultiXsend()
 fmt.Println("短信MultiXsend 接口:",multixsend)


语音 Voice 包


语音服务 appid & appkey 请前往:https://www.mysubmail.com/chs/voice/apps
  
语音数字签名模式 normal or md5 or sha1 ,normal = 明文appkey鉴权 ,md5 和 sha1 为数字签名鉴权模式


语音 send 接口


服务配置:

  • config := make(map[string]string)
  • config["appid"]="your_appid"
  • config["appkey"]="your_appkey"
  • config["signType"]="sha1"


使用指引:

方法描述
CreateSend创建短信send接口
SetTo设置手机联系人
SetContent设置语音正文
Send()发送短信


代码示列:

  func VoiceSend() {
 // 语音 短信服务配置 appid & appkey 请前往:https://www.mysubmail.com/chs/voice/apps 获取
 config := make(map[string]string)
 config["appid"]="your_appid"
 config["appkey"]="your_appkey"
 // 语音数字签名模式 normal or md5 or sha1 ,normal = 明文appkey鉴权 ,md5 和 sha1 为数字签名鉴权模式
 config["signType"]="sha1"
 //创建语音Send 接口
 submail := sms.CreateSend(config)
 //设置联系人手机号码
 submail.SetTo("your_telephone")
 //设置语音正文。
 submail.SetContent("您的验证码是:2234,请在30分钟输入")
 //执行 Send 方法发送语音
 send := submail.Send()
 fmt.Printf("语音 Send 接口:%s\n",send)
}


语音 xsend 接口


服务配置:

  • config := make(map[string]string)
  • config["appid"]="your_appid"
  • config["appkey"]="your_appkey"
  • config["signType"]="sha1"


使用指引:

方法描述
CreateXsend创建短信xsend接口
SetTo设置手机联系人
SetProject设置项目Id
AddVar添加文本变量到 vars map
XSend发送语音


代码示列:

func VoiceXsend() {
 // 语音服务配置 appid & appkey 请前往:https://www.mysubmail.com/chs/voice/apps 获取
 config := make(map[string]string)
 config["appid"]="your_appid"
 config["appkey"]="your_appkey"
 // 语音 数字签名模式 normal or md5 or sha1 ,normal = 明文appkey鉴权 ,md5 和 sha1 为数字签名鉴权模式
 config["signType"]="sha1"
 //创建 语音 XSend 接口
 submail := sms.CreateXsend(config)
 //设置联系人 手机号码
 submail.SetTo("your_telephone")
    //设置语音模板id
 submail.SetProject("XV6HJ")
 //添加模板中的设置的动态变量。如模板为:您的验证码是:@var(code),请在@var(time)分钟内输入。
 submail.AddVar("code","1234");
 submail.AddVar("time","5");
 //执行 Xsend 方法发送语音
 xsend := submail.Xsend()
 fmt.Println("语音XSend 接口:",xsend)


语音 multixsend 接口


服务配置:

  • config := make(map[string]string)
  • config["appid"]="your_appid"
  • config["appkey"]="your_appkey"
  • config["signType"]="sha1"


使用指引:

方法描述
CreateMultiXsend创建短信CreateMultiXsend接口
SetProject设置项目Id
CreateMulti设置多个发送对象信息
SetTo设置联系人手机号码
AddVar添加模板变量
MultiXsend发送语音


代码示列:

func VoiceMultiXsend() {
 config := make(map[string]string)
 config["appid"]="your_appid"
 config["appkey"]="your_appkey"
 config["signType"]="sha1"
 submail := sms.CreateMultiXsend(config)
 submail.SetProject("XV6HJ")
 //添加第一组收件人
 multi1:=sms.CreateMulti();
 multi1.SetTo("133XXXXX");
 multi1.AddVar("code","1234");
 multi2.AddVar("time","10");
 //添加第二组收件人
 multi2:=sms.CreateMulti();
 multi2.SetTo("133XXXXX");
 multi2.AddVar("code","1234");
 multi2.AddVar("time","10");
 submail.AddMulti(multi1.Get());
 submail.AddMulti(multi2.Get());
 multixsend := submail.MultiXsend()
 fmt.Println("语音 MultiXsend 接口:",multixsend)


国际短信 internationalsms包


国际短信服务 appid & appkey 请前往:https://www.mysubmail.com/chs/internationalsms/apps
  
国际短信数字签名模式 normal or md5 or sha1 ,normal = 明文appkey鉴权 ,md5 和 sha1 为数字签名鉴权模式


国际短信 send 接口


服务配置:

  • config := make(map[string]string)
  • config["appid"]="your_appid"
  • config["appkey"]="your_appkey"
  • config["signType"]="sha1"


使用指引:

方法描述
CreateSend创建国际短信send接口
SetTo设置手机联系人
SetContent设置短信正文。可以传自定义内容,非必须短信签名,纯英文短信(包括标点符号,短信签名的[]也需英文)单条按140个字符计费,超过140个字符每132个字符计费一次,其他语言单条按70个字符计费,超过70个字符每67个字符计费一次。
SetTag设置自定义标记,此参数用于标记一次 API 请求(最大长度不超过 32 位)添加了 tag 参数的 API 请求,会在所有的 SUBHOOK 事件中携带此参数。
Send发送短信


代码示列:

  func InternationalsmsSend() {
 // 国际短信服务配置 appid & appkey 请前往:https://www.mysubmail.com/chs/internationalsms/apps 获取
 config := make(map[string]string)
 config["appid"]="your_appid"
 config["appkey"]="your_appkey"
 // 国际短信 数字签名模式 normal or md5 or sha1 ,normal = 明文appkey鉴权 ,md5 和 sha1 为数字签名鉴权模式
 config["signType"]="sha1"
 //创建 国际短信 Send 接口
 submail := sms.CreateSend(config)
 //设置联系人 手机号码
 submail.SetTo("your_telephone")
 //设置国际短信正文
 submail.SetContent("【SUBMAIL】您的验证码是:2234,请在30分钟输入")
 //执行 Send 方法发送国际短信
 send := submail.Send()
 fmt.Println("国际短信短信 Send 接口:",send)
}


国际短信 xsend 接口


服务配置:

  • config := make(map[string]string)
  • config["appid"]="your_appid"
  • config["appkey"]="your_appkey"
  • config["signType"]="sha1"


使用指引:

方法描述
CreateXsend创建短信xsend接口
SetTo设置手机联系人
SetProject设置项目Id
AddVar添加文本变量到 vars map
SetTag设置自定义标记,此参数用于标记一次 API 请求(最大长度不超过 32 位)添加了 tag 参数的 API 请求,会在所有的 SUBHOOK 事件中携带此参数。
XSend发送短信


代码示列:

func  InternationalsmXsend() {
 // 国际短信服务配置 appid & appkey 请前往:https://www.mysubmail.com/chs/internationalsms/apps 获取
 config := make(map[string]string)
 config["appid"]="your_appid"
 config["appkey"]="your_appkey"
 // 国际短信数字签名模式 normal or md5 or sha1 ,normal = 明文appkey鉴权 ,md5 和 sha1 为数字签名鉴权模式
 config["signType"]="sha1"
 //创建 国际短信 XSend 接口
 submail := sms.CreateXsend(config)
 //设置联系人 手机号码
 submail.SetTo("your_telephone")
    //设置国际短信模板id
 submail.SetProject("XV6HJ")
 //添加模板中的设置的动态变量。如模板为:【xxx】您的验证码是:@var(code),请在@var(time)分钟内输入。
 submail.AddVar("code","1234");
 submail.AddVar("time","5")
 //执行 Xsend 方法发送国际短信
 xsend := submail.Xsend()
 fmt.Println("国际短信 XSend 接口:",xsend)


国际短信 multixsend 接口


服务配置:

  • config := make(map[string]string)
  • config["appid"]="your_appid"
  • config["appkey"]="your_appkey"
  • config["signType"]="sha1"


使用指引:

方法描述
CreateMultiXsend创建国际短信CreateMultiXsend接口
SetProject设置项目Id
CreateMulti设置多个发送对象信息
SetTo设置联系人手机号码
AddVar添加模板变量
AddTag添加项目标记,此参数用于标记一次 API 请求(最大长度不超过 32 位)添加了 tag 参数的 API 请求,会在所有的 SUBHOOK 事件中携带此参数。
MultiXsend发送短信


代码示列:

func Internationalsms MultiXsend() {
 config := make(map[string]string)
 config["appid"]="your_appid"
 config["appkey"]="your_appkey"
 config["signType"]="sha1"
 submail := sms.CreateMultiXsend(config)
 submail.SetProject("XV6HJ")
 //添加第一组收件人
 multi1:=sms.CreateMulti();
 multi1.SetTo("133XXXXX");
 multi1.AddVar("code","1234");
 multi2.AddVar("time","10");
 //添加第二组收件人
 multi2:=sms.CreateMulti();
 multi2.SetTo("133XXXXX");
 multi2.AddVar("code","1234");
 multi2.AddVar("time","10");
 submail.AddMulti(multi1.Get());
 submail.AddMulti(multi2.Get());
 multixsend := submail.MultiXsend()
 fmt.Println("国际短信 MultiXsend 接口:",multixsend)


彩信 mms 包


彩信服务 appid & appkey 请前往:https://www.mysubmail.com/chs/mms/apps
  
彩信数字签名模式 normal or md5 or sha1 ,normal = 明文appkey鉴权 ,md5 和 sha1 为数字签名鉴权模式


彩信 Xsend 接口


服务配置:

  • config := make(map[string]string)
  • config["appid"]="your_appid"
  • config["appkey"]="your_appkey"
  • config["signType"]="sha1"


使用指引:

方法描述
CreateXsend创建彩信xsend接口
SetTo设置手机联系人
SetProject设置项目Id
AddVar添加文本变量到 vars map
SetTag设置自定义标记,此参数用于标记一次 API 请求(最大长度不超过 32 位)添加了 tag 参数的 API 请求,会在所有的 SUBHOOK 事件中携带此参数。
XSend发送短信


代码示列:

func MMSXsend() {
 // SMS 短信服务配置 appid & appkey 请前往:https://www.mysubmail.com/chs/sms/apps 获取
 config := make(map[string]string)
 config["appid"]="your_appid"
 config["appkey"]="your_appkey"
 // SMS 数字签名模式 normal or md5 or sha1 ,normal = 明文appkey鉴权 ,md5 和 sha1 为数字签名鉴权模式
 config["signType"]="sha1"
 //创建 短信 Send 接口
 submail := mms.CreateXsend(config)
 //设置联系人 手机号码
 submail.SetTo("your_telephone")
    //设置短信模板id
 submail.SetProject("XV6HJ")
 //添加模板中的设置的动态变量。如模板为:【xxx】您的验证码是:@var(code),请在@var(time)分钟内输入。
 submail.AddVar("code","1234");
 submail.AddVar("time","5");
 //执行 Xsend 方法发送短信
 xsend := submail.Xsend()
 fmt.Println("彩信XSend 接口:",xsend)


彩信 mutilxsend 接口


服务配置:

  • config := make(map[string]string)
  • config["appid"]="your_appid"
  • config["appkey"]="your_appkey"
  • config["signType"]="sha1"


使用指引:

方法描述
CreateMultiXsend创建短信CreateMultiXsend接口
SetProject设置项目Id
CreateMulti设置多个发送对象信息
SetTo设置联系人手机号码
AddVar添加模板变量
AddTag添加项目标记,此参数用于标记一次 API 请求(最大长度不超过 32 位)添加了 tag 参数的 API 请求,会在所有的 SUBHOOK 事件中携带此参数。
MultiXsend发送短信


代码示列:

func MMSMultiXsend() {
 config := make(map[string]string)
 config["appid"]="your_appid"
 config["appkey"]="your_appkey"
 config["signType"]="sha1"
 submail := sms.CreateMultiXsend(config)
 submail.SetProject("XV6HJ")
 //添加第一组收件人
 multi1:=mms.CreateMulti();
 multi1.SetTo("133XXXXX");
 multi1.AddVar("code","1234");
 multi2.AddVar("time","10");
 //添加第二组收件人
 multi2:=sms.CreateMulti();
 multi2.SetTo("133XXXXX");
 multi2.AddVar("code","1234");
 multi2.AddVar("time","10");
 submail.AddMulti(multi1.Get());
 submail.AddMulti(multi2.Get());
 multixsend := submail.MultiXsend()
 fmt.Println("彩信MultiXsend 接口:",multixsend)