如何发送存储的模板并指定reply_to、from.name 和from.email?

sil*_*gan 5 javascript email node.js sparkpost

这里解释了如何在发送内联内容时指定这些属性,但在发送存储的模板时据说它们是被禁止的。

我尝试通过指定模板的 ID 以及禁止的属性:reply_tofrom.name和来发送电子邮件from.email,并且禁止的属性被忽略。

在发送事务性电子邮件时,我发现将 Reply-To 标头设置为正常而非异常,但我发现在发送存储的模板时无法执行此操作很奇怪。从代码而不是从 SparkPost 模板编辑器设置发件人姓名和电子邮件似乎也是一个很好的功能。

我的代码如下所示(它使用 SparkPost NodeJS API,并且使用此代码成功发送了带有替换数据的电子邮件,因此问题不在substitution_datarecipients或此代码的回调部分中):

client.transmissions.send({
    transmissionBody: {
        content: {
            template_id: 'my-first-email',
            reply_to: 'example@sparkpostbox.com', // example email address
            from: {
                name: 'My Name',
                email: 'example2@sparkpostbox.com'
            }
        },
        substitution_data: { /* ... */ },
        recipients: [ /* ... */ ]
    }
}, function (err, res) { /* ... */ });
Run Code Online (Sandbox Code Playgroud)

更新:我在 SparkPost 支持中心发现了这个问题,但它对我没有帮助。

更新 2:我还发现这个支持问题可能会有所帮助,但我仍然需要一种设置Reply-To标题的方法,而且我还不确定From电子邮件地址(不是姓名From,我从链接的文章中确信它可以做到这一点)可以使用动态替换数据。

更新 3:我向 SparkPost 支持发送了一封电子邮件并收到了以下答复:

产品经理表示,我们尚不清楚该功能何时会出现在产品中。请密切关注我们的网站和 Slack 频道以获取更新。

由于我已经测试并接受了这个问题的答案,我认为他们不太理解我。但这毕竟是一个幸福的结局。

小智 2

正如 Dave Gray 上面提到的,您可以在模板中使用替换变量来设置自定义“发件人姓名”、“发件人电子邮件”和“回复”字段。

下面是一个示例模板,展示了它的外观:

{
  "content": {
    "from": {
      "name": "{{fromName}}",
      "email": "{{fromEmail}}"
    },
    "subject": "{{subject}}",
    "html": "Hi! I am an HTML part.",
    "text": "I am a text part.",
    "reply_to": "{{replyTo}}"
  }
}
Run Code Online (Sandbox Code Playgroud)

正如 Dave 还指出的那样,您需要使用 API 来更新包含这些字段的存储模板。 这里有一些 JS 来做到这一点的要点。

然后您可以在传输中设置fromName,fromEmail和:replyTo

{
  "recipients": [
    "..."
  ],
  "content": {
    "template_id": "your-dynamic-template"
  },
  "substitution_data": {
    "fromName": "Your Name",
    "fromEmail": "you@yourdomain.com",
    "replyTo": "youagain@yourotherdomain.com"
  }
}
Run Code Online (Sandbox Code Playgroud)