这似乎是一个非常普遍的需求,但是当我搜索它时,我找不到任何好的指南。
答案 0 :(得分:50)
假设您正在使用net / smtp包以及smtp.SendMail函数,您只需要在消息中声明MIME类型。
mime := "MIME-version: 1.0;\nContent-Type: text/html; charset=\"UTF-8\";\n\n";
subject := "Subject: Test email from Go!\n"
msg := []byte(subject + mime + "<html><body><h1>Hello World!</h1></body></html>")
smtp.SendMail(server, auth, from, to, msg)
希望这有助于=)
答案 1 :(得分:15)
我是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的客户端在电子邮件中添加正文的正文版本。
答案 2 :(得分:1)
这是@GreyHands回答的附录:
我遇到的问题是即使在设置MIME /内容类型后我的html标签显示为纯文本。
原来我导入了html/template
并且转义导致html显示为纯文本。相反,导入text/template
修复了问题。