这似乎是一个非常常见的需求,但我在搜索时没有找到任何好的指南。
假设您使用的是net/smtp包,因此使用的是smtp。SendMail函数,您只需要在邮件中声明MIME类型。
subject := "Subject: Test email from Go!n"
mime := "MIME-version: 1.0;nContent-Type: text/html; charset="UTF-8";nn"
body := "<html><body><h1>Hello World!</h1></body></html>"
msg := []byte(subject + mime + body)
smtp.SendMail(server, auth, from, to, msg)
希望这有帮助=)
我是gomail的作者。有了这个包,你可以轻松地发送HTML电子邮件:
package main
import (
"gopkg.in/gomail.v2"
)
func main() {
m := gomail.NewMessage()
m.SetHeader("From", "alex@example.com")
m.SetHeader("To", "bob@example.com")
m.SetHeader("Subject", "Hello!")
m.SetBody("text/html", "Hello <b>Bob</b>!")
// Send the email to Bob
d := gomail.NewPlainDialer("smtp.example.com", 587, "user", "123456")
if err := d.DialAndSend(m); err != nil {
panic(err)
}
}
您还可以使用AddAlternative方法为不支持HTML的客户端在电子邮件中添加正文的纯文本版本。