【问题标题】:Dynamic sendgrid templates being sent as plain text以纯文本形式发送的动态 sendgrid 模板
【发布时间】:2020-05-02 12:08:33
【问题描述】:

我正在通过 sendgrid 发送电子邮件,但是当我收到电子邮件时,电子邮件是纯文本格式的,我想以 html 格式发送。 变量 data 是我传递给 sgMail.send 的数据。

module.exports = {
data: {
    to: '',
    from: '',
    subject: '',
    text: '',
    templateId: '',
    dynamic_template_data: {
        value_precip: undefined,
        value_humidity: undefined,
        value_windSpeed: undefined,
        value_condition: undefined,
        value_activiti: undefined
    }
},

set: function(to, from, subject, text, templateId, params) {
    this.data.to = to
    this.data.from = from
    this.data.subject = subject
    this.data.text = text
    this.data.templateId = templateId,
    this.data.dynamic_template_data.value_precipitation = params.value_precipitation
    this.data.dynamic_template_data.value_humidity = params.value_humidity
    this.data.dynamic_template_data.value_windSpeed = params.value_windy
    this.data.dynamic_template_data.value_condition = params.value_condition
    this.data.dynamic_template_data.value_activiti = params.value_activiti

},
    send: function() {
    try {
        sgMail.send(this.data)
    } catch (error) {
        console.log(error)
    }

   }
}

我不知道是什么原因导致这个问题,如果有人可以帮助我,我将不胜感激!

【问题讨论】:

    标签: javascript node.js email sendgrid


    【解决方案1】:

    看起来 SendGrid 使用 html 属性来决定内容类型是否应该是 html,即使他们忽略了内容。因此,只需将该属性包含在有效负载中即可。看起来很奇怪,但它对我有用。

    P.S.:我没有尝试使用 JavaScript,我使用的是 Python。

    【讨论】:

    • "Try..." 读起来像一个调试实验提案,它更像是一个澄清问题而不是答案。因此,这应该是一条评论 (meta.stackexchange.com/questions/214173/…)。请将其改写为有条件的答案,例如“如果您的问题的根本原因是……那么解决方案就是……”
    【解决方案2】:

    很简单,去掉text即可。

    正如 SendGrid 的贡献者所提到的。 Read more

    鉴于动态模板包含 HTML 和纯文本内容,因此在使用动态模板时不应传递文本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-26
      • 2015-07-21
      • 2021-04-12
      相关资源
      最近更新 更多