Golang 邮件发送工具 gomail

安装工具

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())
	}
}