Parse.com SendGrid 云模块:无法发送标头参数对象

Posted

技术标签:

【中文标题】Parse.com SendGrid 云模块:无法发送标头参数对象【英文标题】:Parse.com SendGrid Cloud Module: Cannot send header param object 【发布时间】:2014-08-12 20:43:10 【问题描述】:

我尝试通过 Parse.com 的 SendGrid 云模块发送一封带有 header 参数的电子邮件,以便包含一些关于正在发送的电子邮件的独特参数。

var SendGrid = require("sendgrid");  
SendGrid.initialize(username, password);

SendGrid.sendEmail(
  to: request.params.to,
  from: request.params.from,
  subject: request.params.subject,
  html: request.params.html,
  headers: JSON.stringify( "unique_args":  "newsletter": request.params.newsletter )
, 
  success: function(httpResponse) 
    response.success(httpResponse);
  ,
  error: function(httpResponse) 
    response.error(httpResponse);
  
);

这会得到错误消息:标头中的 JSON 有效但不兼容

当我不对标头进行字符串化时,我会收到以下错误: 未捕获的错误:无法对对象进行格式编码

有关 SendGrid 邮件 API 的更多信息:https://sendgrid.com/docs/API_Reference/Web_API/mail.html

更多关于 Parse.com SendGrid 云模块的信息:https://www.parse.com/docs/cloud_modules_guide#sendgrid

谢谢!!

【问题讨论】:

【参考方案1】:

标题的键实际上是x-smtpapi。对于这种情况,您也不需要对 json 进行字符串化。

您的示例的完整用法是:

var SendGrid = require("sendgrid");  
SendGrid.initialize(username, password);

SendGrid.sendEmail(
  to: request.params.to,
  from: request.params.from,
  subject: request.params.subject,
  html: request.params.html,
  "x-smtpapi":  "unique_args":  "newsletter": request.params.newsletter 
, 
  success: function(httpResponse) 
    response.success(httpResponse);
  ,
  error: function(httpResponse) 
    response.error(httpResponse);
  
);

该库的文档是here。通过提供的方法创建和使用电子邮件对象实际上更容易。

【讨论】:

以上是关于Parse.com SendGrid 云模块:无法发送标头参数对象的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 parse.com 云功能 Android 将 Json 对象强制转换为 Float

Parse.com 云代码 - 无法弄清楚为啥 javascript 变量在所有数组项中具有相同的值

如何将云代码从 parse.com 移动到 heroku

发送大量邮件而不发疯(SendGrid?云?)[关闭]

在云功能 Firebase 中使用 SendGrid 发送交易电子邮件

结果:ReferenceError:未定义响应