通过sendgrid向某些邮箱发送邮件,出来的是中文。

问题描述 投票:2回答:1

我正在使用Sendgrid节点库来发送事务性邮件。一切都很好,直到今天我收到一个投诉,说有些人用@live.com或@optonline.net的邮箱收到的邮件只是一堵中文墙和一些其他字符。这些邮件发到其他每个邮箱都很好,而且也不是每个人都有这些邮箱,只有少数人。

控制台中没有错误显示,通过Sendgrid仪表盘查看,也没有发现邮件发送的问题。

这是邮件的一个例子。What the email looks like

正如你所看到的标题很好,但正文却很奇怪。

下面是它应该是什么样子的。What the picture is supposed to look like

你知道这是怎么回事吗?或者如何解决这个问题?这不是一个主要的问题,因为它只是一个子集的人遇到这个问题,然而,它仍然是相当令人沮丧的。

javascript node.js email sendgrid
1个回答
0
投票

其实解决方案是我的同事Brian得出的。

所以SendGrid用ISO 8859-1编码发送邮件,如果某些邮件客户端的编码与邮件正文不匹配,就会像贴出的截图一样,奇怪地显示邮件。

我们花了一些时间来找出邮件被跳闸的原因,最终意识到我们的模板中有一些东西,要么是编码不同,要么是跳闸,当我们测试从头开始创建一个新的模板时,它可以正常工作。

我们使用SendGrid中的模板生成器重新创建了我们一直使用的模板,并将其导出为代码,替换了我们的旧模板。现在,邮件可以正常显示了。

所以问题是内容编码不匹配,确保模板源中没有任何不同编码的内容才是解决之道。

© www.soinside.com 2019 - 2024. All rights reserved.