社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
与邮件相关的系统库
1, net/mail
实现邮件消息的解析,参见RFC 5322。
Address:表示邮件地址
Header:表示邮件头中的键值对(Key-Value Pairs)
Message:表示已经解析了的邮件
2, net/smtp
实现SMTP协议(Simple Mail Transfer Protocol, 简单邮件传输协议) ,参见RFC 5321。
Auth:接口,用于实现smtp认证机制,smtp有三种认证方法:LOGIN, PLAIN, CRAM-MD5。net/smtp实现了后两种。
Client:连接SMTP服务器的客户端
ServerInfo:记录SMTP服务器的信息
发送邮件方法
func SendMail(addr string, a Auth, from string, to []string, msg []byte) error
使用 SendMail 方法发送邮件时需要提供Auth对象,并对邮件头和邮件体进行编码,比较繁琐。这里使用beego提供的工具类来发送邮件。
package main
import (
"fmt"
"github.com/astaxie/beego/utils"
)
func main() {
config := `{"username":"347341200@qq.com","password":"授权码","host":"smtp.qq.com","port":587}`
email := utils.NewEMail(config)
email.To = []string{"leitiannet@163.com"}
email.From = "347341200@qq.com"
email.Subject = "beego-邮件测试"
email.Text = "邮件正文"
email.HTML = "<h1>hello world</h1>"
// email.AttachFile("1.jpg") // 附件
// email.AttachFile("1.jpg", "1") // 内嵌资源
err := email.Send()
if err != nil {
fmt.Println(err)
return
}
}
对于QQ邮箱缺省是关闭 POP3/SMTP 服务的,需要登录邮箱进行开启。具体步骤参见 Go实战--通过net/smtp发送邮件(The way to go)
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!