Sendgrid电子邮件发送有撇号'字符的问题?

时间:2013-04-04 09:54:45

标签: java email sendgrid

尝试使用sendgrid和java发送电子邮件。撇号字符看起来像?问号。 我发送标题文本编码为UTF-8,但它仍然是一个问号。

  

mailMessage.setHeaders( “{ '文本': 'UTF-8'}”);

上述行无效。我确信我输入的HTML字符串是UTF-8编码的。电子邮件客户端是MS Outlook 2010

任何想法?

4 个答案:

答案 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倾斜撇号,或者如果您希望它们保持倾斜,则可以使用&ldquo;或{{ 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)

您必须将主题变量传递给三大括号,以便将其解析为文本而不是HTML 您可以像这样传递它-{{{subject}}}

或者您可以再次关注all the steps

这个对我有用。