beego发送邮件 - Go语言中文社区

beego发送邮件


与邮件相关的系统库

1, net/mail

实现邮件消息的解析,参见RFC 5322。

Address:表示邮件地址
Header:表示邮件头中的键值对(Key-Value Pairs)
Message:表示已经解析了的邮件

2, net/smtp
实现SMTP协议(Simple Mail Transfer Protocol, 简单邮件传输协议) ,参见RFC 5321。

Auth:接口,用于实现smtp认证机制,smtp有三种认证方法:LOGIN, PLAIN, CRAM-MD5。net/smtp实现了后两种。

Client:连接SMTP服务器的客户端

ServerInfo:记录SMTP服务器的信息

发送邮件方法

func SendMail(addr string, a Auth, from string, to []string, msg []byte) error

使用 SendMail 方法发送邮件时需要提供Auth对象,并对邮件头和邮件体进行编码,比较繁琐。这里使用beego提供的工具类来发送邮件。

package main

import (
	"fmt"

	"github.com/astaxie/beego/utils"
)

func main() {
	config := `{"username":"347341200@qq.com","password":"授权码","host":"smtp.qq.com","port":587}`
	email := utils.NewEMail(config)
	email.To = []string{"leitiannet@163.com"}
	email.From = "347341200@qq.com"
	email.Subject = "beego-邮件测试"
	email.Text = "邮件正文"
	email.HTML = "<h1>hello world</h1>"
	// email.AttachFile("1.jpg") // 附件
	// email.AttachFile("1.jpg", "1") // 内嵌资源
	err := email.Send()
	if err != nil {
		fmt.Println(err)
		return
	}
}


对于QQ邮箱缺省是关闭 POP3/SMTP 服务的,需要登录邮箱进行开启。具体步骤参见 Go实战--通过net/smtp发送邮件(The way to go)


版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/tianlei147258/article/details/79348623
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-09-13 23:25:15
  • 阅读 ( 1905 )
  • 分类:Go Web框架

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢