【发布时间】:2014-08-27 08:13:23
【问题描述】:
我在 main.js 中的 Parse 上有一个云函数,我在其中以使用 Mandrill API 编码的 HTML 格式发送邮件。我通过我的 iOS 应用程序调用这个函数,发布一些参数,它完全可以,发送电子邮件。但是我想根据用户的语言本地化 HTML 正文。由于我检查了非常棘手的 iOS 内联 HTML 选项,因此我尝试在 main.js 上的 sendMail 函数中执行此操作:
Parse.Cloud.define("sendMail", function(request, response) {
var Mandrill = require('mandrill');
Mandrill.initialize('APP_ID');
var locale = request.params.locale;
var userName = request.params.user;
var password = request.params.pass;
var HTMLBodyEn = '<p>text</p>';
var HTMLBody = HTMLBodyEn;
if (locale == 'tr') {
HTMLBody = '<p>yazı</p>';
}
Mandrill.sendEmail({
message: {
html: HTMLBody,
subject: request.params.subject,
from_email: request.params.fromEmail,
from_name: request.params.fromName,
to: [
{
email: request.params.toEmail,
name: request.params.toName
}
]
},
async: true
},{
success: function(httpResponse) {
console.log(httpResponse);
response.success("Email sent!");
},
error: function(httpResponse) {
console.error(httpResponse);
response.error("Uh oh, something went wrong");
}
});
});
嗯,就这么简单。 如果条件你看到那里会导致所有问题...正如你所看到的那样,我收到了一个区域设置密钥来更改正文,但它没有并且 Parse 返回 141 错误代码,这意味着经过一些挖掘是超时异常。
我似乎无法理解一个简单的 if 语句会导致超时。
谁能帮我解决这个问题?遇到过类似的事情吗?
【问题讨论】:
-
很可能超时是在发送电子邮件时,云函数被限制为 15 秒后被杀死。如果 Mandrill 服务由于某种原因花费的时间过长,您将收到超时异常。
标签: javascript ios email parse-platform mandrill