背景
我们正在构建一个应用程序,通过Mailgun处理和发送电子邮件.这些有时是一次性消息,由事务启动.但是,有些电子邮件会立即发送到30k +.
例如,给所有成员的通讯.
注意事项
Mailgun提供带有API 的批量发送选项.使用"收件人变量",您可以包含与特定用户配对的动态值.
但是,此批量发送功能是有限的.每个请求不能发送超过1,000个收件人,这意味着我们必须遍历每个1,000的收件人列表(在我们的数据库中).Mailgun 使用Python 提供了一个如何工作的示例(向左滚动约2/3).
题
批量发送是否有任何优势(即,使用收件人变量通过单个API调用向一组收件人发送电子邮件),而不是进行自己的循环,变量替换和单个API调用?
我认为这对我们的服务器来说更加沉重,因为它会处理每个消息本身,而不是仅仅将所有数据卸载到Mailgun的服务器上,以便在他们的终端上进行繁重的工作.但我也喜欢在我们的最终处理灵活性和简单性,并一次向Mailgun发送一个"完全呈现"的消息,而不必一次迭代1k.
关于最佳实践的任何想法,或者我们应该考虑的因素?
我试图通过提供客户 ID 来检索特定客户的所有卡。根据文档,我期待以下响应:
Stripe\Collection JSON: {
"object" => "list",
"url" => "/v1/customers/cu_16jdAj2eZvKYlo2CbrCP4HRs/sources",
"has_more" => false,
"data" => [
[0] => Stripe\Card JSON: {
"id": "card_14bIFkou9GUI42eZvKYlo2Cs",
"object": "card",
"last4": "4242",
"brand": "Visa",
"funding": "credit",
"exp_month": 11,
"exp_year": 2018,
"country": "US",
"name": "callingsudhanshu@gmail.com",
"address_line1": null,
"address_line2": null,
"address_city": null,
"address_state": null,
"address_zip": null,
"address_country": null,
"cvc_check": null,
"address_line1_check": null,
"address_zip_check": null,
"tokenization_method": null,
"dynamic_last4": null,
"metadata": {
},
"customer": "cus_6Nb0wxYHigk2mX"
}
[1] => <Stripe\Card[...] ...>
[2] => <Stripe\Card[...] ...>
] …Run Code Online (Sandbox Code Playgroud) 点表示法允许使用"."访问对象.无法弄清楚为什么会这样.我有以下成功函数,作为jQuery $ .ajax函数的一部分.
success: function(data){
console.log('data = ' + data);
console.log('data.president = ' + data.president);
console.log('data.adviser = ' + data.adviser);
}
Run Code Online (Sandbox Code Playgroud)
奇怪的是,这导致以下浏览器日志:
data = {"president":1,"adviser":1}
data.president = undefined
data.adviser = undefined
Run Code Online (Sandbox Code Playgroud)
我必须遗漏一些痛苦明显的东西.有人可以开导我吗?