3

我在 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");
	}
});

4

1 回答 1

2

正如您在github 问题上的回复中提到的,您必须使用内联内容或模板。因此,正如文档所述,仅template_id在您的content.

要使其正常工作,需要headers在模板中包含一个CC标题,如此所述。目前没有办法在 UI 中设置模板的标题——必须使用 API 来完成。

为此,对模板端点执行 PUT ,在您的情况下https://api.sparkpost.com/api/v1/templates/order-confirmation,使用包含以下内容的 JSON 有效负载:

{
  "content": {
    <other content parts>
    "headers": {
      "CC": "{{CC}}"
    }
  }
}

请注意,您还需要使用header_to抄送收件人的参数来防止他们的地址出现在To:标题中。在您的示例中,这意味着替换:

{address: {email: 'anon2@gmail.com'}}

有了这个:

{address: {email: 'anon2@gmail.com', header_to: 'anon1@domain1.in'}}

您也不需要该return_path参数。

希望这可以帮助!

于 2016-08-04T10:51:34.977 回答