【Golang】使用Golang的发送邮件
warning:
这篇文章距离上次修改已过188天,其中的内容可能已经有所变动。
在Go语言中,我们可以使用net/smtp
包来发送邮件。以下是一个简单的例子,展示了如何使用Go发送邮件。
package main
import (
"crypto/tls"
"fmt"
"net/smtp"
)
func main() {
// 设置 SMTP 服务器信息
smtpHost := "smtp.example.com"
smtpPort := "587"
smtpUser := "your_username"
smtpPass := "your_password"
// 邮件发送者和接收者
from := "your_username@example.com"
to := []string{"recipient@example.com"}
// 邮件主题和内容
subject := "Hello from Go"
body := "This is an email sent using Go."
// 设置 SMTP 客户端
host := smtpHost + ":" + smtpPort
auth := smtp.PlainAuth("", smtpUser, smtpPass, smtpHost)
// 发送邮件
msg := []byte("Subject: " + subject + "\n\n" + body)
err := smtp.SendMail(host, auth, from, to, msg)
if err != nil {
fmt.Println("SendMail Error:", err)
return
}
fmt.Println("Email sent successfully!")
}
在使用上述代码之前,请确保你的SMTP服务器信息(如smtpHost
, smtpPort
, smtpUser
, 和 smtpPass
)是正确的,并且你的邮箱用户名和密码也是正确的。另外,如果你的SMTP服务器使用的是SSL/TLS,你可能需要配置一个tls.Config
来允许不使用SSL/TLS的连接:
tlsconfig := &tls.Config{
InsecureSkipVerify: true,
ServerName: smtpHost,
}
conn, err := tls.Dial("tcp", host, tlsconfig)
if err != nil {
log.Fatal(err)
}
client, err := smtp.NewClient(conn, smtpHost)
if err != nil {
log.Fatal(err)
}
// 身份验证
if auth != nil {
if err = client.Auth(auth); err != nil {
log.Fatal(err)
}
}
// 发送邮件...
请注意,在实际应用中,你应该使用更安全的方法来处理密码,例如使用环境变量或者密钥管理服务。此外,你还应该使用更加健壮的错误处理,并确保邮件内容遵守相关的邮件发送最佳实践。
评论已关闭