我在SparkPost面板中创建了模板。但我面临的问题是,我无法通过调用api来发送"CC"或"BCC"。下面的代码片段将帮助你理解我正在尝试做什么。
var SPARKPOST_KEY = "KEY"
var sparkpost = require('sparkpost');
var sparkclient = new sparkpost(SPARKPOST_KEY);
var req_opts = {
transmissionBody : {
content: {
template_id: 'order-confirmation',
from: 'support@domain.in',
subject: 'Order confirmation',
headers: {
"CC": "<anon2@gmail.com>"
}
},
substitution_data: {
"CC": "anon2@gmail.com",
"customer": "Aravind",
"order": 123532
},
recipients: [
{address: {email:'anon1@domain1.in'}},
{address: {email: 'anon2@gmail.com'}}
],
"return_path": "support@domain.in",
}
};
sparkclient.transmissions.send(req_opts, function(err, res){
if(err){
console.log("ERROR");
console.log(err)
}else {
console.log(res.body);
console.log("Mail has been successfully sent");
}
});
正如关于github问题的回复中所提到的,您必须使用内联内容或模板。因此,正如文档所说,在content
中只使用template_id
。
要实现这一点,需要在模板中的headers
包含一个CC
头,如这里所述。目前没有办法在UI中设置模板的头——必须使用API来完成。
为此,对模板端点执行PUT,在您的案例中为https://api.sparkpost.com/api/v1/templates/order-confirmation
,JSON负载包含以下内容:
{
"content": {
<other content parts>
"headers": {
"CC": "{{CC}}"
}
}
}
请注意,您还需要为CC收件人使用header_to
参数,以防止他们的地址显示在To:
标头中。在您的示例中,这意味着替换:
{address: {email: 'anon2@gmail.com'}}
这个:
{address: {email: 'anon2@gmail.com', header_to: 'anon1@domain1.in'}}
您也不需要return_path
参数。
希望这能有所帮助!