MailGun:向电子邮件添加数据变量
MailGun: Add data variables to email
我正在使用 MailGun 通过 Node.js 发送电子邮件。我想添加包含来自数据库的数据的自定义数据变量,将其作为电子邮件正文的一部分发送。根据我的研究,我需要使用 recipient-variables
。但问题是 recipient-variables
需要收件人的 email
作为对象的 key
像这样:
{
"user1@example.com" : {"unique_id": "ABC123456789"},
"user2@example.com" : {"unique_id": "ZXY987654321"}
}
现在我从数据库中获取的数据是这样的:
{ email: 'myemail@something.com', projects: [ 'aqeqw weqw ', 'title here' ]}
而 MailGun 需要这个(我觉得这很奇怪):
{'myemail@something.com': { email: 'myemail@something.com', projects: [ 'aqeqw weqw ', 'title here' ]}}
如何将我从数据库接收的对象的键设置为电子邮件?
仅供参考,我的 MailGun 代码:
let data = {
from: 'My App <donotreply@myapp.com>',
to: data.email,
subject: 'Reminder Email',
'recipient-variables': {data},
html: '<html style="color: red; font-size: 20px; background-color: aqua">Inline image here:<p style="">Your project list and your name is %recipient.projects%</p></html>',
};
mailgun.messages().send(data, function(error, body) {
console.log(body);
});
你可以这样做,使用一个中间对象:
let obj = {
email: 'myemail@something.com',
projects: [ 'aqeqw weqw ', 'title here' ]
}
let final = {}
final[obj.email] = obj
console.log(final)
/* {
'myemail@something.com':
{
email: 'myemail@something.com',
projects: [ 'aqeqw weqw ', 'title here' ]
}
}
*/
我正在使用 MailGun 通过 Node.js 发送电子邮件。我想添加包含来自数据库的数据的自定义数据变量,将其作为电子邮件正文的一部分发送。根据我的研究,我需要使用 recipient-variables
。但问题是 recipient-variables
需要收件人的 email
作为对象的 key
像这样:
{
"user1@example.com" : {"unique_id": "ABC123456789"},
"user2@example.com" : {"unique_id": "ZXY987654321"}
}
现在我从数据库中获取的数据是这样的:
{ email: 'myemail@something.com', projects: [ 'aqeqw weqw ', 'title here' ]}
而 MailGun 需要这个(我觉得这很奇怪):
{'myemail@something.com': { email: 'myemail@something.com', projects: [ 'aqeqw weqw ', 'title here' ]}}
如何将我从数据库接收的对象的键设置为电子邮件?
仅供参考,我的 MailGun 代码:
let data = {
from: 'My App <donotreply@myapp.com>',
to: data.email,
subject: 'Reminder Email',
'recipient-variables': {data},
html: '<html style="color: red; font-size: 20px; background-color: aqua">Inline image here:<p style="">Your project list and your name is %recipient.projects%</p></html>',
};
mailgun.messages().send(data, function(error, body) {
console.log(body);
});
你可以这样做,使用一个中间对象:
let obj = {
email: 'myemail@something.com',
projects: [ 'aqeqw weqw ', 'title here' ]
}
let final = {}
final[obj.email] = obj
console.log(final)
/* {
'myemail@something.com':
{
email: 'myemail@something.com',
projects: [ 'aqeqw weqw ', 'title here' ]
}
}
*/