Here解释了如何在发送内联内容时指定这些属性,但在发送存储模板时,则说它们是被禁止的。
我尝试通过指定模板的ID以及禁止的属性来发送电子邮件:reply_to
,from.name
和from.email
,并且忽略了禁用的属性。
在发送交易电子邮件时,我看到将Reply-To标头设置为正常,并非异常,我发现在发送存储模板时我无法执行此操作,这很奇怪。从代码而不是从SparkPost模板编辑器设置From名称和电子邮件似乎也是一个很好的功能。
我的代码看起来像这样(它使用SparkPost NodeJS API,并且使用此代码成功发送带有替换数据的电子邮件,因此问题不在substitution_data
,recipients
或回调中这部分代码):
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
是否{ {1}}电子邮件地址(不是From
名称,我可以从链接文章中确定它可以执行此操作)可以使用动态替换数据。
更新3 :我向SparkPost支持部门发送了一封电子邮件,并收到了以下答案:
产品经理转发我们没有时间框架 此功能将在产品中。请关注我们的网站 和松弛的渠道进行更新。
由于我已经测试并接受了这个问题的答案,我认为他们并不了解我。但毕竟这是一个快乐的结局。
答案 0 :(得分:3)
如果您指定template_id
,则无法在content
对象中指定任何其他选项。因此,如果您想自定义模板,则需要在模板中添加替换变量。
需要注意的一点是,如果在From:
标题中使用替换变量,则意味着您无法使用UI编辑该模板,因为您需要(在UI中)使用已验证发送域名。
答案 1 :(得分: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来使用这些字段更新存储的模板。 Here's a gist with some JS to do that.
然后,您可以在传输中设置fromName
,fromEmail
和replyTo
:
{
"recipients": [
"..."
],
"content": {
"template_id": "your-dynamic-template"
},
"substitution_data": {
"fromName": "Your Name",
"fromEmail": "you@yourdomain.com",
"replyTo": "youagain@yourotherdomain.com"
}
}