2012-03-30 173 views

回答

44

假设您使用的是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) 

希望这有助于=)

+0

smtp.SendMail(server,auth,from,to,msg) - SendMail中的大写M – deepakssn 2016-10-24 06:04:23

+0

编辑答案并修正错字。谢谢 – GreyHands 2016-10-24 14:08:23

14

我的gomail作者。有了这个包,你可以轻松地发送HTML格式的电子邮件:

package main 

import (
    "gopkg.in/gomail.v2" 
) 

func main() { 
    m := gomail.NewMessage() 
    m.SetHeader("From", "[email protected]") 
    m.SetHeader("To", "[email protected]") 
    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客户端。

+0

看起来很棒,感谢vm把它放在一起! – 2014-11-06 22:08:06

+1

目前为止我见过的Da最好的包装纸。强烈推荐。 – coffekid 2015-01-25 19:12:16

+0

完美!!!!!!!!! – 2018-01-08 06:16:42

1

这是一个增编@GreyHands回答:

我在哪里甚至设置MIME /内容键入我的html标签后显示为纯文本问题。

原来我输入了html/template,转义导致html显示为纯文本。导入text/template,而是解决了问题。

相关问题