Golang 发送邮件

关键词: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 密码!