Go语言实现通过SMTP给QQ邮箱发送邮件

gomail库是golang常用来开发邮件功能的库,他的功能强大,可以满足正常的邮件发送功能,支持群发和添加附件的功能。

1. 安装gomail库

go get gopkg.in/gomail.v2

2. 代码如下

package main

import (
	"gopkg.in/gomail.v2"
)


// MailboxConf 邮箱配置
type MailboxConf struct {
	// 邮件标题
	Title string
	// 邮件内容
	Body string
	// 收件人列表
	RecipientList []string
	// 发件人账号
	Sender string
	// 发件人密码,QQ邮箱这里配置授权码
	SPassword string
	// SMTP 服务器地址, QQ邮箱是smtp.qq.com
	SMTPAddr string
	// SMTP端口 QQ邮箱是25
	SMTPPort int
}

func main() {
	var mailConf MailboxConf
	mailConf.Title = "测试用gomail发送邮件"
	mailConf.Body = "Good Good Study, Day Day Up!!!!!!"
	mailConf.RecipientList = []string{`[email protected]`}
	mailConf.Sender = `[email protected]`
	mailConf.SPassword = "xxx"
	mailConf.SMTPAddr = `smtp.qq.com`
	mailConf.SMTPPort = 25

	m := gomail.NewMessage()
	m.SetHeader(`From`, mailConf.Sender)
	m.SetHeader(`To`, mailConf.RecipientList...)
	m.SetHeader(`Subject`, mailConf.Title)
	m.SetBody(`text/html`, mailConf.Body)
	m.Attach("./Dockerfile")   //添加附件
	err := gomail.NewDialer(mailConf.SMTPAddr, mailConf.SMTPPort, mailConf.Sender, mailConf.SPassword).DialAndSend(m)
	if err != nil {
		log.Fatalf("Send Email Fail, %s", err.Error())
		return
	}
	log.Printf("Send Email Success")
}

运行代码:

可以看到邮件已经发送成功了,检查邮箱是否收到邮件:

猜你喜欢

转载自blog.csdn.net/random_w/article/details/104835213