特殊字符的编码不适用于 sendgrid 模板的电子邮件主题

Encoding for special characters not working in email subject for sendgrid templates

我一直在使用 sendgrid-ruby gem 发送电子邮件。电子邮件的主题未正确解码特殊字符。 例如。在电子邮件 How's it going 中发送此主题会在实际电子邮件 How's it going

中转换为此主题

我已经尝试将字符串编码为不同的格式,例如 ASCII,ISO_8859_1 但是 none 这个有效。

@body_json['personalizations'][0]['dynamic_template_data'] = {
    'email_title': @email_title,
    'content': @description,
    'subject': "How's it going"
}

SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY']).client.mail._('send').post(request_body: @body_json)

电子邮件的主题应正确显示特殊字符,例如 ' & :

好的,在与 sendgrid 支持人员交谈后,我终于弄明白了。问题不在于我这边的 sendgrid 请求。每当制作模板时,始终确保 header 中的主题标题在双括号内,即 {{subject}}。这将确保所有特殊字符在此块内工作。

您应该在主题部分使用三括号,即 {{{subject}}} 表示带有特殊字符的主题。 如果您使用双括号方法,您的字符串将被 HTML 编码。

从 SendGrid 存储库 https://github.com/sendgrid/sendgrid-nodejs/issues/741#issuecomment-422026634

检查这个 link