概述
为了实现一个邮件验证码功能,特意了解了一下go如何发送邮件。本来以为会很麻烦,没想到其实很简单。
工具类
实现的工具类如下:
package mail
import "gopkg.in/gomail.v2"
type MailConfig struct {
Account string
Password string
Port int
Host string
}
func SendMail(conf *MailConfig, from string, mailTo []string, subject string, body string) error {
m := gomail.NewMessage()
m.SetHeader("From", m.FormatAddress(conf.Account, from))
m.SetHeader("To", mailTo...)
m.SetHeader("Subject", subject)
m.SetBody("text/html", body)
d := gomail.NewDialer(conf.Host, conf.Port, conf.Account, conf.Password)
err := d.DialAndSend(m)
return err
}
主要使用到了gomail这个包。我使用的是qq邮箱,QQ邮箱需要申请POP/SMTP的授权码。端口则固定是587,域名是smtp.qq.com。
使用这个工具类:
mail.SendMail(mailConfig,
"认证", []string{mailToStr},
"登录验证码",
fmt.Sprintf("您正在尝试登录系统,这是您的验证码:%s,该验证码有效期为%d秒。",
randomStr, ttlSeconds))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)