关键词:mail send golang go 邮件 发送 编程
使用到的开源组件
gomail https://github.com/go-gomail/gomail
代码
func SendMail() {
m := gomail.NewMessage()
m.SetAddressHeader("From", "sender@163.com", "Sender") // 发件人邮箱,发件人名称
m.SetHeader("To", // 收件人
m.FormatAddress("receiver@qq.com", "Receiver"),
)
m.SetHeader("Subject", "subject") // 主题
m.SetBody("text/plain", "text") // 正文
d := gomail.NewDialer("smtp.163.com", 25, "sender@163.com", "senderEmailPassword") // 发送邮件服务器、端口、发件人账号、发件人密码
if err := d.DialAndSend(m); err != nil {
log.Println("send mail err:", err)
}
}
常用邮箱和端口
列举一些常用的邮箱,可以用来测试:
QQ 邮箱
POP3 服务器地址:qq.com(端口:995)
SMTP 服务器地址:smtp.qq.com(端口:465/587)
163 邮箱:
POP3 服务器地址:pop.163.com(端口:110)
SMTP 服务器地址:smtp.163.com(端口:25)
126 邮箱:
POP3 服务器地址:pop.126.com(端口:110)
SMTP 服务器地址:smtp.126.com(端口:25)
开启邮箱服务
出于邮箱安全的考虑,很多邮箱缺省是关闭 POP3/SMTP 服务的,需要登录邮箱设置后开启。
以 QQ 邮箱为例,进入邮箱“设置”,在“帐户”项里就可找到“POP3/SMTP服务”的设置项,进行开启。
**温馨提示:**登录第三方客户端时,密码框请输入“授权码”进行验证。
也就是说,在使用 QQ 邮箱发送邮件的时候,需要使用授权码,而不是 QQ 密码!