因此MailGun提供了通过实现其API的Node库发送电子邮件的可能性:
var mailgun = require('mailgun-js')({ apiKey: api_key, domain: DOMAIN });
var filepath = path.join(__dirname, 'sample.jpg');
var data = {
from: 'Excited User <me@samples.mailgun.org>',
to: 'foo@example.com, baz@example.com, bar@example.com',
cc: 'baz@example.com',
bcc: 'bar@example.com',
subject: 'Complex',
text: 'Testing some Mailgun awesomness!',
html: "<html>HTML version of the body</html>",
attachment: filepath
};
mailgun.messages().send(data, function (error, body) {
console.log(body);
});
它们还提供了设计和创建Email Templates的可能性。有没有办法通过其API发送带有一些自定义变量的模板化电子邮件?像这样:
var data = {
from: 'Excited User <me@samples.mailgun.org>',
to: 'foo@example.com, baz@example.com, bar@example.com',
template: "withdraw_request_approved", //Instead of 'html'
vars: { firstName: 'John', lastName: 'Doe' }
};
mailgun.messages().send(data, function (error, body) {
console.log(body);
});
如果没有,您是否可以建议其他提供这种功能的邮件服务? (我跳过了Mandrill,因为它显然已经关闭了,尚不清楚何时可以再次使用它。)
答案 0 :(得分:0)
是的,您可以按照您的情况选择以下格式:
var data = {
from: 'Excited User <me@samples.mailgun.org>',
to: 'foo@example.com, baz@example.com, bar@example.com',
template: "withdraw_request_approved", //Instead of 'html'
'v:firstName': 'John',
'v:lastName': 'Doe'
};
答案 1 :(得分:0)
根据Mailgun Template Documentation,您可以使用下面提供的2个选项中的任何一个来传递模板数据,
选项1
var data = {
from: 'Excited User <me@samples.mailgun.org>',
to: 'alice@example.com',
subject: 'Hello',
template: 'template.test',
h:X-Mailgun-Variables: '{"title": "API Documentation", "body": "Sending messages with templates"}'
};
在此示例h:X-Mailgun-Variables
中,这是我在更新对象时所遇到的棘手问题。
var data = {
from: 'Excited User <me@samples.mailgun.org>',
to: 'alice@example.com',
subject: 'Hello',
template: 'template.test',
'h:X-Mailgun-Variables': JSON.stringify({
title: "API Documentation",
body: "Sending messages with templates"
})
};
选项2
尽管在previous answer中已经对此进行了解释,但为完整性起见,我还要补充这一点。
var data = {
from: 'Excited User <me@samples.mailgun.org>',
to: 'alice@example.com',
subject: 'Hello',
template: 'template.test',
'v:title': 'API Documentation',
'v:body': 'Sending messages with templates'
};
最后,根据他们的文档
第二种方法(在我们的示例中为选项2 )不建议使用,因为它仅限于简单键值 数据。如果您有数组,值中的字典或复杂的json数据 您必须通过
X-Mailgun-Variables
标头提供变量。