【问题标题】:Sendgrid email sending having issue with apostrophe ’ character?Sendgrid 电子邮件发送与撇号字符有问题?
【发布时间】:2013-04-04 09:54:45
【问题描述】:

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

mailMessage.setHeaders("{'text':'UTF-8'}");

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

有什么想法吗?

【问题讨论】:

    标签: java email sendgrid


    【解决方案1】:

    在标头中设置内容类型实际上并不是将内容类型更改为 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" );
    

    【讨论】:

      【解决方案2】:

      我知道这个答案对你来说太迟了 6.5 年,但是由于这个问题仍然存在于人们身上,而且这篇文章在谷歌搜索中的排名很高,我想我会提供一个替代解决方案。

      在 SendGrid 中的模板本身上,您可以通过使用三重大括号而不是双大括号来简单地转义这些有问题的字符。即

      {{{收件人姓名}}}

      而不是

      {{收件人姓名}}

      此解决方案隐藏在 SendGrid 文档的内部:

      https://github.com/sendgrid/sendgrid-nodejs/blob/master/packages/helpers/constants/index.js

      【讨论】:

        【解决方案3】:

        您是否从 MS Word 中复制并粘贴了内容?

        有些字符不会在 html 中呈现。您可以通过简单地在文本编辑器中重新输入来手动替换所有撇号字符,它将用标准的垂直撇号替换 MS Word 倾斜撇号,或者如果您希望它们保持倾斜,您可以使用 &amp;ldquo;&amp;rdquo;

        【讨论】:

          【解决方案4】:

          您必须在三花括号中传递您的主题变量,以便它将解析为文本而不是 HTML 你可以这样传递 - {{{subject}}}

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

          这个对我有用。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2017-12-26
            • 2018-08-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多