Beego下的短信和邮件业务

Beego下的短信和邮件业务

1.短信业务

这里使用的是阿里云短信业务

func RespFunc(this* UserController,resp map[string]interface{}){
	this.Data["json"] = resp
	this.ServeJSON()
}
func(this*UserController)HandleSendMsg(){
	//接受数据
	phone := this.GetString("phone")
	resp := make(map[string]interface{})
    //返回json格式数据
	defer RespFunc(this,resp)
	//校验数据
	if phone == ""{
		beego.Error("获取电话号码失败")
		//2.给容器赋值
		resp["errno"] = 1
		resp["errmsg"] = "获取电话号码错误"
		return
	}
	//检查电话号码格式是否正确
	reg,_ :=regexp.Compile(`^1[3-9][0-9]{9}$`)
	result := reg.FindString(phone)
	if result == ""{
		beego.Error("电话号码格式错误")
		resp["errno"] = 2
		resp["errmsg"] = "电话号码格式错误"
		return
	}
//初始化客户端  需要accessKey  需要开通申请
client, err := sdk.NewClientWithAccessKey("default", AccessKeyId, AccessKeySecret)
	if err != nil {
		resp["errno"] = 3
		resp["errmsg"] = "阿里云客户端初始化失败"
		return
	}
	//获取6位数随机码
	rnd := rand.New(rand.NewSource(time.Now().UnixNano()))
	vcode := fmt.Sprintf("%06d", rnd.Int31n(1000000))
	//初始化请求对象
	request := requests.NewCommonRequest()
	request.Method = "POST"//设置请求方法
	request.Scheme = "https" // https | http   //设置请求协议
	request.Domain = "dysmsapi.aliyuncs.com"  //域名
	request.Version = "2017-05-25"			//版本号
	request.ApiName = "SendSms"				//api名称
	request.QueryParams["PhoneNumbers"] = phone  //需要发送的电话号码
	request.QueryParams["SignName"] = "xxx"    //签名名称   需要申请
	request.QueryParams["TemplateCode"] = "SMS_xxxxxxxxx"   //模板号   需要申请
	request.QueryParams["TemplateParam"] = `{"code":`+vcode+`}`   //发送短信验证码

	response, err := client.ProcessCommonRequest(request)  //发送短信
	if err != nil {
		resp["errno"] = 4
		resp["errmsg"] = "发送短信失败"
		return
	}

	var msg MSG

	json.Unmarshal(response.GetHttpContentBytes(),&msg)  //解析发送结果
	if msg.Message != "OK"{
		resp["errno"] = 6
		resp["errmsg"] = "短信发送失败"
		return
	}
2.邮件业务
//发送邮件
	config := `{"username":"xxxxxxxxxxx@163.com","password":"xxxxxxxx","host":"smtp.163.com","port":25}`
	emailreg := utils.NewEMail(config)
	emailreg.Subject = "主题名称"
	emailreg.From = "xxxxxxxxxxx@163.com"
	emailreg.To = []string{email}
	userName := this.Ctx.GetCookie("userName")
	emailreg.HTML = `<a href="http://192.168.168.183:8080/active?username=` + userName + `">点击激活</a>`
	err = emailreg.Send()
   if err != nil{
      this.Data["errmsg"] = "发送激活邮件失败,请重新注册!"
      this.TplName = "register.html"
      return
   }

   this.Ctx.WriteString("注册成功,请前往邮箱激活!")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值