尝试使用sendgrid和java发送电子邮件。撇号字符看起来像?问号。 我发送标题文本编码为UTF-8,但它仍然是一个问号。
mailMessage.setHeaders( “{ '文本': 'UTF-8'}”);
上述行无效。我确信我输入的HTML字符串是UTF-8编码的。电子邮件客户端是MS Outlook 2010
任何想法?
答案 0 :(得分:2)
在标题中设置内容类型实际上不是将内容类型更改为UTF-8的正确方法。您需要在BodyPart
上实际设置类型。例如:
// Create a message part to represent the body text
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent( "<strong>some html content</strong>", "text/html; charset=utf-8" );
答案 1 :(得分:1)
您是否复制并粘贴了MS Word中的内容?
某些字符无法在html中呈现。您可以通过在文本编辑器中重新键入来手动替换所有撇号字符,它将用标准垂直字符替换MS Word倾斜撇号,或者如果您希望它们保持倾斜,则可以使用“
或{{ 1}}
答案 2 :(得分:0)
我知道这个答案对您来说已经晚了6.5年,但是,由于问题仍然存在,因此人们对此问题的看法还在不断上升,并且该帖子在Google搜索中的排名很高,我想我会提供一种替代解决方案。
在SendGrid模板本身上,您可以使用三重花括号而不是双花括号来转义这些有问题的字符。即
{{{{recipient_name}}}
代替
{{recipient_name}}
此解决方案隐藏在SendGrid文档的主要内容中:
https://github.com/sendgrid/sendgrid-nodejs/blob/master/packages/helpers/constants/index.js
答案 3 :(得分:0)