【发布时间】:2016-05-05 05:32:09
【问题描述】:
我正在字符串化 emailData 并将其发送到 Mandrill URL,但没有成功:
Meteor.methods({
'sendProjectApprovedEmail'(projectId){
check(projectId, String);
let project = Projects.findOne({_id: projectId});
let user = Meteor.users.findOne({_id: project['userId']});
let message = `<p>Hola ${user['services']['facebook']['first_name']}, enviamos este correo para notificarte que tu proyecto:</p>`;
let emailData = {
"key": Meteor.settings.mandrillApiKey,
"message": [{
"html": message,
"subject": "Tu proyecto ha sido aprobado",
"from_email": "mail@mail.com",
"from_name": "name.com",
"to": [{
"email": user['services']['facebook']['email'],
"name": user['services']['facebook']['first_name'],
"type": "to"
}],
"headers": {
"Reply-To": "mail@mail.com"
},
"track_opens": true,
"track_clicks": true,
"inline_css": true
}],
"async": false
};
HTTP.post('https://mandrillapp.com/api/1.0/messages/send.json', {
data: JSON.stringify(emailData),
headers: {
'Content-Type': 'application/json; charset=utf-8'
}
}, function(error, data){
if (error) { console.log(error) }
else { console.log(data) }
});
}
});
JSON.stringify 输出如下:
console.log(JSON.stringify(emailData));
{"key":"XXXXXX...","message":[{"html":"<p>Hola Gustavo, enviamos este correo para notificarte que tu proyecto:</p>","subject":"Tu proyecto ha sido aprobado","from_email":"mail@mail.com","from_name":"DeveloperFullstack.com","to":[{"email":"mail@gmail.com","name":"Gustavo","type":"to"}],"headers":{"Reply-To":"contacto@developerfullstack.com"},"track_opens":true,"track_clicks":true,"inline_css":true}],"async":false}
但响应返回 500 错误:
{ [Error: failed [500] {"status":"error","code":-1,"name":"ValidationError","message":"You must specify a key value"}]
我也试过了:
let emailData = [{//...}]let emailData = {"key": "XXX...", "message": {//...}}
正如其他 SO 答案所暗示的那样,没有成功。
更新
为了记录,使它与:
let emailData = {
"key": Meteor.settings.mandrillApiKey,
"message": {
"html": message,
"subject": "Tu proyecto ha sido aprobado",
"from_email": "mail@mail.com",
"from_name": "name.com",
"to": [{
"email": user['services']['facebook']['email'],
"name": user['services']['facebook']['first_name'],
"type": "to"
}],
"headers": {
"Reply-To": "mail@mail.com"
},
"track_opens": true,
"track_clicks": true,
"inline_css": true
},
"async": false
};
HTTP.post('https://mandrillapp.com/api/1.0/messages/send.json', {
data: emailData,
headers: {
'User-Agent': 'Meteor app DevFS@1.0.0'
}
}, function(error, data){
if (error) { console.log(error) }
else { console.log(data) }
});
【问题讨论】: