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

Jay*_*mel 26 email go

这似乎是一个非常普遍的需求,但是当我搜索它时,我找不到任何好的指南.

Gre*_*nds 53

假设您正在使用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)
Run Code Online (Sandbox Code Playgroud)

希望这有助于=)


Ale*_*Ale 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)
    }
}
Run Code Online (Sandbox Code Playgroud)

您还可以使用AddAlternative方法为不支持HTML的客户端在电子邮件中添加正文的正文版本.

  • 不幸的是不再积极维护。 (3认同)