安装工具
go get gopkg.in/gomail.v2
示例代码
package main
import (
"fmt"
"os"
"gopkg.in/gomail.v2"
)
func SendMail(mailTo []string, subject string, body string, attachs []string) error {
// SMTP 服务配置
SMTPServerHost := "smtp.exmail.qq.com"
// 端口
SMTPServerPort := 25
// 账号
SMTPServerUser := "***@***.com"
// 密码
SMTPServerPassword := "****"
// 消息对象
msg := gomail.NewMessage()
msg.SetHeader("From", SMTPServerUser)
// 发送给多个用户
msg.SetHeader("To", mailTo...)
// 设置邮件主题
msg.SetHeader("Subject", subject)
// 设置邮件正文
msg.SetBody("text/html", body)
// 添加附加
// 获取执行文件绝对路径
pwd, errPwd := os.Getwd()
if errPwd == nil {
fmt.Printf("pwd: %v\n", pwd)
}
for _, attach := range attachs {
msg.Attach(pwd + "/" + attach)
}
// 初始化 dialer
dialer := gomail.NewDialer(SMTPServerHost, SMTPServerPort, SMTPServerUser, SMTPServerPassword)
err := dialer.DialAndSend(msg)
return err
}
func main() {
// 定义收件人切片,可以多个
mailTo := []string{
"***@qq.com",
}
// 设置邮件主题
subject := "测试主题..."
// 邮件正文
body := `<p style="color:blue;">邮件正文</p>`
// 发送邮件
err := SendMail(mailTo, subject, body, []string{"fj.txt"})
if err != nil {
println(err.Error())
}
}