小编典典

通过SMTP将更多信息注入电子邮件

go

我遇到了一个非常奇怪的问题。我有一个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的信任却少得多。

(在某些点上,我们的正文有不同的间距,然后信息将被注入到消息正文中的随机位置中)


阅读 405

收藏
2020-07-02

共1个答案

小编典典

您需要\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)
    }
}
2020-07-02