使用Golang发送邮件需获取邮箱授权码、通过net/smtp包或gomail库连接SMTP服务器并构造正确邮件头,QQ邮箱等服务需开启POP3/SMTP并使用授权码而非登录密码,基础功能可用标准库,复杂需求推荐gomail。

想用Golang快速实现一个邮件发送功能?其实并不复杂。Go语言标准库中的 net/smtp 包已经提供了足够的支持,配合第三方邮箱服务(比如QQ邮箱、163邮箱或Gmail),你可以几分钟内写出一个能发邮件的小程序。
大多数邮箱服务默认不开启SMTP访问,需要你手动开启并获取授权码:
注意:发送邮件时使用的密码不是你的登录密码,而是这个授权码。
下面是一个完整的示例,演示如何通过QQ邮箱发送纯文本邮件:
立即学习“go语言免费学习笔记(深入)”;
package main
import (
"net/smtp"
"fmt"
)
func main() {
from := "your_email@qq.com"
password := "your_authorization_code" // 授权码,非登录密码
to := "recipient@example.com"
smtpHost := "smtp.qq.com"
smtpPort := "587"
subject := "测试邮件"
body := "这是一封由Golang发送的测试邮件。"
headers := "From: " + from + "\r\n" +
"To: " + to + "\r\n" +
"Subject: " + subject + "\r\n" +
"MIME-Version: 1.0\r\n" +
"Content-Type: text/plain; charset=UTF-8\r\n"
message := headers + "\r\n" + body
auth := smtp.PlainAuth("", from, password, smtpHost)
err := smtp.SendMail(smtpHost+":"+smtpPort, auth, from, []string{to}, []byte(message))
if err != nil {
fmt.Printf("发送失败: %v\n", err)
return
}
fmt.Println("邮件发送成功!")
}
说明:
本文档主要讲述的是Eclipse配置Tomcat教程;Eclipse IDE: eclipse IDE 用作 JSP 页面和 Java 文件的开发环境。Eclipse 是一个非常简单易用的 IDE 环境,它具有很多特性,可以帮助程序员快速编写并调试 Java 程序。加上 tomcat 插件之后,这个 IDE 就是管理整个 Web 项目(包括 HTML 和 JSP 页面、图标和 servlet)的一个非常优秀的工具。 Tomcat: 驱动 JSP 页面需要使用 Tomcat。Tomcat 引擎是非常好的一个
0
如果想发送HTML内容或带附件的邮件,建议使用第三方库如 gomail(由 gopkg.in/mail.v2 提供):
go get gopkg.in/mail.v2
示例代码:
package main
import "gopkg.in/mail.v2"
func main() {
m := mail.NewMessage()
m.SetHeader("From", "your_email@<a style="color:#f60; text-decoration:underline;" title="qq" href="https://www.php.cn/zt/16888.html" target="_blank">qq</a>.com")
m.SetHeader("To", "recipient@example.com")
m.SetHeader("Subject", "HTML邮件测试")
m.SetBody("text/<a style="color:#f60; text-decoration:underline;" title="html" href="https://www.php.cn/zt/15763.html" target="_blank">html</a>", "<h1>你好,这是一封HTML邮件!</h1><p>支持<b>加粗</b>和链接。</p>")
d := mail.NewDialer("smtp.qq.com", 587, "your_email@qq.com", "your_authorization_code")
d.StartTLSEnabled = true
if err := d.DialAndSend(m); err != nil {
panic(err)
}
fmt.Println("HTML邮件发送成功!")
}
gomail 支持附件、抄送、多收件人、内嵌图片等高级功能,API也更清晰。
用Golang发邮件,基础场景用 net/smtp 就够了,够轻量也够用。如果项目需要更复杂的邮件功能,推荐使用 gomail 这类成熟库。整个过程关键点就三个:获取授权码、拼对邮件头、正确连接SMTP服务器。
基本上就这些,不复杂但容易忽略细节,比如忘记开启SMTP或用错端口。动手试一次,你就熟悉了。
以上就是Golang简单邮件发送项目开发教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号