如何发送存储的模板并指定回复地址、发件人姓名和发件人电子邮件?

5

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

我尝试通过指定模板的ID和被禁止的属性reply_tofrom.namefrom.email来发送电子邮件,但被禁止的属性被忽略了。

当发送事务性电子邮件时,设置回复地址头部似乎是很正常的,不算什么不寻常的。我发现在发送存储的模板时却不能这样做,这让我感到很奇怪。从代码中设置发件人姓名和电子邮件地址而不是从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) { /* ... */ });
更新:我在SparkPost支持中心找到了this question,但它对我没有帮助。

更新2:我还找到了this support question,可能会有一些帮助,但我仍然需要一种设置Reply-To头的方法,我还不确定From电子邮件地址(不是From名称,关于这一点,我从链接的文章中确信它可以做到这一点)是否可以使用动态替换数据。

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

产品经理传达,我们没有时间框架来实现此功能。请关注我们的网站和Slack频道以获取更新。

由于我已经测试并接受了这个问题的答案,我想他们没有很好地理解我的意思。但毕竟是一个愉快的结局。


您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - silviubogan
1
只是猜测:因为你既没有将你当前的尝试作为实际代码块包含,也没有提供逐字逐句的错误消息。对于外部人员来说,当你解释实际代码时,他们更容易理解你在谈论什么。对于未来的访问者来说,如果问题更具体一些,通过搜索更容易找到这个问题。 - Tomalak
谢谢您的反馈。现在我已经将我的源代码添加到问题中了。:-) - silviubogan
2个回答

3
如果您指定了template_id,则不能在content对象中指定任何其他选项。因此,如果您想自定义模板,则需要在模板中添加替换变量。
需要注意的一点是,如果您在From:头中使用替换变量,那么这意味着您无法使用UI编辑该模板,因为在UI中有一个硬性要求,即您必须使用已验证的发送域名。

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}}"
  }
}

正如Dave指出的那样,您需要使用API将这些字段更新到存储的模板中。 这里有一些JS代码可以完成此操作。

然后,您可以在传输中设置fromNamefromEmailreplyTo

{
  "recipients": [
    "..."
  ],
  "content": {
    "template_id": "your-dynamic-template"
  },
  "substitution_data": {
    "fromName": "Your Name",
    "fromEmail": "you@yourdomain.com",
    "replyTo": "youagain@yourotherdomain.com"
  }
}

我已经测试了你的Gist,看起来在SparkPost模板编辑器中,发件人名称和发件人电子邮件值没有更新,而回复地址值从未显示。我不知道有人可以使用API更改模板的这些属性。谢谢! :-) - silviubogan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接