go 发送邮件功能
上一篇 go-zero 数字图形验证码功能 之后,接下来我们要开发一个发送邮件的功能。
框架还是go-zero,好吧,我们开始撸!
1、引包:我们用到的是这个包(github.com/jordan-wright/email)
github.com/jordan-wright/email
2、新建一个邮件发送的工具:新建一个utils文件加,然后创建mail.go文件
直接撸代码:我用的是163邮箱,开干之前。需要在邮箱进行配置。具体步骤百度一下或者联系我沟通。
package utils
import (
"crypto/tls"
"fmt"
"net/smtp"
"strings"
"github.com/jordan-wright/email"
)
func Email(To, subject string, body string) error {
to := strings.Split(To, ",")
return send(to, subject, body)
}
func send(to []string, subject string, body string) error {
from := "这里是发件人邮箱地址,需要自己配置"
nickname := "这里是名称"
secret := "秘钥"
host := "smtp.163.com"
port := 465
isSSL := true
auth := smtp.PlainAuth("", from, secret, host)
e := email.NewEmail()
if nickname != "" {
e.From = fmt.Sprintf("%s <%s>", nickname, from)
} else {
e.From = from
}
e.To = to
e.Subject = subject
e.HTML = []byte(body)
var err error
hostAddr := fmt.Sprintf("%s:%d", host, port)
if isSSL {
err = e.SendWithTLS(hostAddr, auth, &tls.Config{ServerName: host})
} else {
err = e.Send(hostAddr, auth)
}
return err
}
OK,工具方法已经好了。
我们开始引用:
utils.Email(in.Email, "xxx", "您好,欢迎加入xxxxx!邮箱已发送,祝您使用愉快!")
还没有评论,快来发表第一个评论吧