我遇到了一个非常奇怪的问题。我有一个golang服务器,并且正在使用net / smtp发送电子邮件。一切顺利,直到我们意识到一些额外的信息被注入到电子邮件中,雅虎才开始忽略我们的电子邮件。无论如何,为我们的信息主体发送的信息是:
From: test@withheld.com To: me@gmail.com Subject: Testing MIME-version: 1.0; Content-Type: text/html; charset="UTF-8"; <html> <b> Testing </b> </html>
然后将其发送到Amazon SES,我们用来发送电子邮件的帐户托管在godaddy上。当电子邮件到达时,我使用gmail显示原始邮件正文,我得到以下信息:
From: test@withheld.com To: me@gmail.com Subject: Testing MIME-version: 1.0; Content-Type: text/html; charset="UTF-8"; <html> <b> Testing </b> </html> Date: Wed, 29 Oct 2014 11:00:56 +0000 Message-ID: <[Lots of Numbers]@email.amazonses.com> X-SES-Outgoing: [Some Numbers] Feedback-ID: us-east-1.[numbers]=:AmazonSES
因此,将这4个附加字段添加到我们的邮件正文中,我认为这会导致我们被标记为垃圾邮件或更糟(雅虎是残酷的)。有人知道这4行可以添加到何处吗?绝对看起来像是SES,但我对Godaddy的信任却少得多。
(在某些点上,我们的正文有不同的间距,然后信息将被注入到消息正文中的随机位置中)
您需要\r\n在标题和正文之间添加换行符()。
\r\n
另外,如果您想通过Go语言发送电子邮件的简便方法,可以使用Gomail(我是作者):
package main import ( "gopkg.in/gomail.v2" ) func main() { m := gomail.NewMessage() m.SetHeader("From", "test@withheld.com") m.SetHeader("To", "me@gmail.com") m.SetHeader("Subject", "Testing") m.SetBody("text/html", `<html> <b> Testing </b> </html>`) d := gomail.NewPlainDialer("smtp.example.com", 587, "user", "123456") if err := d.DialAndSend(m); err != nil { panic(err) } }