如何使用带有HTML格式正文的Go发送电子邮件



这似乎是一个非常常见的需求,但我在搜索时没有找到任何好的指南。

假设您使用的是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的客户端在电子邮件中添加正文的纯文本版本。

最新更新