我使用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?
答案 0 :(得分:0)
在进一步深入研究这个问题之后,邮件客户端中的数据应该看起来如上所示,并且HTML确实正确呈现。事实证明,我看到的第一个链接并没有完全不相干的原因。