go 发送邮件功能
上一篇 go-zero 数字图形验证码功能 之后,接下来我们要开发一个发送邮件的功能。
框架还是go-zero,好吧,我们开始撸!
1、引包:我们用到的是这个包(github.com/jordan-wright/email)
github.com/jordan-wright/email2、新建一个邮件发送的工具:新建一个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!邮箱已发送,祝您使用愉快!")


还没有评论,快来发表第一个评论吧