package main
import (
"gopkg.in/gomail.v2"
"log"
)
type mail struct {
senderAddr string // 发件人地址
senderName string // 发件人名称
receiverAddr []string // 收件人地址,可以有多个收件人
subject string // 邮件主题
text string // 正文
host string // 邮件服务器地址
port int // 邮件服务器端口号
username string // 用户名
password string // 密码或授权码
}
func main() {
m := mail{
senderAddr: "sender@163.com",
senderName: "senderName",
receiverAddr: []string{"receiver@163.com", "receiver@163.com"},
subject: "subject",
text: "test",
host: "smtp.163.com",
port: 25,
username: "username@163.com",
password: "password",
}
SendMail(&m)
}
func SendMail(s *mail) {
m := gomail.NewMessage()
m.SetHeaders(map[string][]string{
"From": {m.FormatAddress(s.senderAddr, s.senderName)}, // 发件人邮箱,发件人名称
"To": s.receiverAddr, // 多个收件人
"Subject": {s.subject}, // 邮件主题
})
m.SetBody("text/plain", s.text)
d := gomail.NewDialer(s.host, s.port, s.username, s.password) // 发送邮件服务器、端口号、发件人账号、发件人密码
if err := d.DialAndSend(m); err != nil {
log.Println("send mail err:", err)
}
}
163 邮箱:
POP3 服务器地址:pop.163.com(端口:110)
SMTP 服务器地址:smtp.163.com(端口:25 / 465)
126 邮箱:
POP3 服务器地址:pop.126.com(端口:110)
SMTP 服务器地址:smtp.126.com(端口:25)
QQ 邮箱
POP3 服务器地址:qq.com(端口:995)
SMTP 服务器地址:smtp.qq.com(端口:465 / 587)
部分邮箱是默认关闭 POP3/SMTP 服务的,需要手动开启,比如 QQ 邮箱。
部分邮箱第三方登录时,不使用密码,使用授权码。
25端口(SMTP):25端口为SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务所开放的,是用于发送邮件。
465端口(SMTP SSL):465端口是为SMTP SSL(SMTP-over-SSL)协议服务开放的,这是SMTP协议基于SSL安全协议之上的一种变种协议,它继承了SSL安全协议的非对称加密的高度安全可靠性,可防止邮件泄露。SMTPS和SMTP协议一样,也是用来发送邮件的,只是更安全些,防止邮件被黑客截取泄露,还可实现邮件发送者抗抵赖功能。防止发送者发送之后删除已发邮件,拒不承认发送过这样一份邮件。
143端口(IMAP):143端口是为IMAP(INTERNET MESSAGE ACCESS PROTOCOL)服务开放的,是用于接收邮件的。
110端口(POP3):110端口是为POP3(Post Office Protocol Version 3,邮局协议3)服务开放的,是用于接收邮件的。
很多邮箱服务提供商简写为不加3的pop(如126邮箱的 pop.126.com)。
993端口(IMAP SSL):993端口是为IMAP SSL(IMAP-over-SSL)协议服务开放的,这是IMAP协议基于SSL安全协议之上的一种变种协议,它继承了SSL安全协议的非对称加密的高度安全可靠性,可防止邮件泄露。IMAPS和IMAP协议一样,也是用来接收邮件的,只是更安全些,防止邮件被黑客截取泄露,还可实现邮件接收方抗抵赖功能。防止收件者收件之后删除已收邮件,拒不承认收到过这样一封邮件。
995端口(POP3 SSL):995端口是为POP3 SSSL(POP3-over-SSL)协议服务开放的,这是POP3协议基于SSL安全协议之上的一种变种协议,它继承了SSL安全协议的非对称加密的高度安全可靠性,可防止邮件泄露。POP3S和POP3协议一样,也是用来接收邮件的,只是更安全些,防止邮件被黑客截取泄露,还可实现邮件接收方抗抵赖功能。防止收件者收件之后删除已收邮件,拒不承认收到过这样一封邮件。
POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上。
而IMAP协议提供webmail 与电子邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作。