html 邮件模板中有其他语言的问题

issue in html mail template which have other language

我正在尝试将 html 代码作为一个主体传递给 OneSignal 服务。但是我的邮件有一些葡萄牙语内容,这些内容在邮件中被转换为其他符号。 如何将其转换为可读的葡萄牙语内容?

下面是代码,我如何在 OneSignalService 中传递正文:

var body = $scope.mailBody;    
body = body.replace("{HE_ID}", id).replace("{HE_Name}", name);    
body = $('<div></div>').append(body).html();    
OneSignalService.SendMail($scope.HE_StatusTitle, body, "abc@abc.com", "xyz@mailinator.com")

这可能是由于 Web 表单(由您的服务器发送的 "Content-type:" header 决定)和 e-mail。后者可能是由 OneSignalService.SendMail() 函数决定的,我不知道。它可能正在发送 Content-type 邮件 header,其编码与您在页面上的编码不同,或者它可能根本没有发送任何编码(在这种情况下,收件人 e-mail客户决定使用什么编码)。

你的问题内容没有提供足够的信息来正确猜测究竟发生了什么,但我会推荐以下内容:

  • 确保您的服务器在 HTML header 秒内发送 "Content-Type: text/html; charset=utf-8"。

  • 检查您的邮件发件人 (OneSignal) 的配置并确保将其设置为以 "utf-8" 编码发送 e-mail(并发出适当的 SMTP 邮件 header).

  • 您还可以在具有邮件输入表单的 HTML 页面和 HTML 页面的 <head> 部分添加 <meta charset="utf-8">您发送为 e-mail。但是,这并不能保证单独解决问题(浏览器将优先考虑 HTTP header 并且可能会忽略 "meta" 标记)。