发送“;CC”;以及“;BCC”;在调用Node SparkPost API时替换数据中

Sending "CC" and "BCC" in substitution data when calling Node SparkPost API

本文关键字:API 替换 数据 SparkPost 以及 CC BCC 发送 调用 Node      更新时间:2023-09-26

我在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参数。

希望这能有所帮助!