要在Golang中使用QQ邮箱的SMTP服务发送邮件,你需要先获取QQ邮箱的SMTP服务授权码。以下是使用QQ邮箱SMTP服务发送邮件的基本步骤:
开启QQ邮箱SMTP服务:登录QQ邮箱,进入设置,找到账户选项卡,开启POP3/SMTP服务,并记录下生成的授权码。
安装Go邮件发送库:可以使用gomail
库,通过运行go get -v gopkg.in/gomail.v2
来安装。
编写发送邮件的代码: “`go package main
import (
"crypto/tls"
"fmt"
"gopkg.in/gomail.v2"
)
func main() {
// TODO: 替换发送邮箱地址、授权码、目的邮箱地址列表、邮件标题、邮件内容
sendEmailAddr := "xxx@qq.com" // 发送邮箱地址
password := "xxx" // 授权码
tos := []string{"xxx@qq.com"} // 目的邮箱地址列表
subject := "测试邮件发送" // 邮件标题
content := `
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试邮件</title>
</head>
<body>
<div>
Just for testing.
</div>
</body>
</html>
`
conf := SMTPConfig{
Host: "smtp.qq.com",
Port: 465,
User: sendEmailAddr,
Password: password,
From: sendEmailAddr,
InsecureSkipVerify: true, // 如果是使用SSL,需要跳过证书验证
}
d := gomail.NewDialer(conf.Host, conf.Port, conf.User, conf.Password)
if conf.InsecureSkipVerify {
d.TLSConfig = &tls.Config{InsecureSkipVerify: true}
}
m := gomail.NewMessage()
m.SetHeader("From", conf.From)
m.SetHeader("To", tos...)
m.SetHeader("Subject", subject)
m.SetBody("text/html", content)
err := d.DialAndSend(m)
if err != nil {
fmt.Printf("Send email failed: %v.", err)
return
}
fmt.Printf("Send email succeed.")
}
type SMTPConfig struct {
Host string
Port int
User string
Password string
From string
InsecureSkipVerify bool
}
“
注意:代码中的
xxx@qq.com和
xxx`需要替换成你的QQ邮箱地址和授权码。
- 发送邮件:运行你的Go程序,如果配置正确,它将通过QQ邮箱的SMTP服务发送邮件。
以上步骤是基于搜索结果中提供的信息。如果你需要更详细的代码示例或者有其他问题,请告知。