gomail.v2在html电子邮件正文中引用了可打印的编码问题

时间:2017-04-26 21:42:55

标签: go

我使用gomail.v2发送html电子邮件。 html的编码/解码存在问题。以下是相关的代码行:

    m := gomail.NewMessage()

    // ... a bunch of lines removed, for clarity...

    s, err := GenerateBodyHTML(si.MsgFName, si.Hostname, &p, t)
    if err != nil {
        return err
    }
    m.SetBody("text/html", s)

    err = d.DialAndSend(m)

我生成HTML作为字符串,我验证它是正确的 - 我可以将s的内容写入文件并在浏览器中打开该文件,它看起来都很好。因此,例如,以下是s中间的几行:

<body>
<a href="http://myisolabella.com/"><img src="http://ec2-54-152-108-202.compute-1.amazonaws.com:8275/iblogosm.png"></a>
<p>Hello Tom,</p>

但在我测试的3个电子邮件客户端中,这里是原始邮件正文的样子:

<body>
<a href=3D"http://myisolabella.com/"><img src=3D"http://ec2-54-152-108-202.compute-1.amazonaws.com:8275/iblogosm.png"></a>
<p>Hello Tom,</p>

因此,当消息呈现时,链接和图像标记不起作用。等号仍然是引用可打印的形式。以下是电子邮件客户端收到的相关标题(为简洁起见,我删除了大部分标题,加上其他任何内容都不相关):

Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

我需要做些什么才能在邮件客户端上正确解码HTML?

1 个答案:

答案 0 :(得分:0)

在进一步深入研究这个问题之后,邮件客户端中的数据应该看起来如上所示,并且HTML确实正确呈现。事实证明,我看到的第一个链接并没有完全不相干的原因。