golang:第三方库:用jordan-wright/email发送邮件

一,安装第三方库:

$ go get -u github.com/jordan-wright/email
go: downloading github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible
go: added github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible

二,代码:

1,发送邮件函数

package service

import (
	"crypto/tls"
	"fmt"
	"github.com/jordan-wright/email"
	"net/smtp"
)

//发送邮件,to:收件人,
//subject:标题
//content:邮件内容
func SendOneEmail(to,subject,content string) error {
	//定义发件邮箱密码等 信息
	frombox:="chinal@163.com"       //发件邮箱
	fromUser:="管理员 <chinal@163.com>"    //显示的用户名
	smtpNoPort:="smtp.163.com"      //host
	smtpPort:= "smtp.163.com:465"   //host带port
	smtpAuthPass :="Bxxxxxxxxxx4"   //auth pass

	//执行邮件发送
	e := email.NewEmail()
	e.From = fromUser     //要显示用户名
	e.To = []string{to}   //收件人
	// 主要就是在这里添加了抄送人cc以及秘密抄送人bcc
	//e.Cc = []string{"1315381111@qq.com"}
	//e.Bcc = []string{"1315381111@qq.com"}
	e.Subject = subject
    //text是文本型内容,HTML是网页型内容
	//e.Text = []byte("测试抄送和密码抄送邮件,收到可以忽略")
	e.HTML = []byte(content)
    //登录验证
    auth:=smtp.PlainAuth("", frombox, smtpAuthPass, smtpNoPort)
    //send方法表示不使用tls,SendWithTLS则使用tls
	//err := e.Send(smtpPort, auth)
	err := e.SendWithTLS(smtpPort, auth, &tls.Config{ServerName: smtpNoPort})
	if err != nil {
		fmt.Println(err)
		return err
	}
    return nil
}

2,调用:

    //准备需要的数据
    email:="laoliu@niubi.com"    //收件人
    subject:="重置密码信息"        //标题
    //内容
	html:="密码重置<br>您好"+username+"!<br/>你已经请求了重置密码,可以点击下面的链接来重置密码。<br><br><br>"
    //发送邮件
	err2:=service.SendOneEmail(email,subject,html)

三,效果:

posted @   刘宏缔的架构森林  阅读(79)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示