【发布时间】:2016-05-04 11:13:11
【问题描述】:
一直在开发这个应用程序 www.prhunters.com 它扫描 Twitter 并提取包含某些关键字的推文。
下面的代码管理每天发送一次的每日摘要电子邮件。但是,有些日子没有匹配的电子邮件是空的。
如何自定义下面的代码,只在有推文时发送,而在电子邮件为空时不发送?
感谢您的帮助!
export function sendDailyTweets({notifications}){
console.log('send daily tweets');
let promises = putValuesInArray(mapObject(notifications, (email, matches) => {
return new Promise(function(resolve, reject){
//console.log(matches);
let template_object = {
showHeader: true,
date: moment().format('MMMM Do YYYY'),
categories: []
};
mapObject(matches, (keyword, tweets) => {
template_object.categories.push({
name: keyword,
tweets: tweets.map( (tweet) => {
return {
authorImage: tweet.user.profile_image_url_https.replace('_normal','_bigger'),
authorName: tweet.user.name,
authorLink: 'https://twitter.com/'+tweet.user.screen_name,
authorScreenname: tweet.user.screen_name,
tweetText: tweet.text,
tweetLink: 'https://twitter.com/'+tweet.user.screen_name+'/status/'+tweet.id_str
};
})
});
});
let html = emailTemplate(template_object);
mandrill.messages.send({
message: {
to: [{
email: email
}],
from_email: 'support@prhunters.com',
from_name: 'PR Hunters',
subject: "Daily PR Opportunities",
html,
tags: ["tweet_notification"],
track_opens: true,
auto_html: true,
preserve_recipients: false
}
},function(result){
console.log('email sent!',result);
if(result[0].status === "rejected" || result[0].status === "invalid"){
reject("Error sending email: "+result[0].reject_reason);
}
resolve(result);
},function(error){
console.error('error sending email',error);
reject(error);
});
});
}));
}
【问题讨论】:
标签: node.js email heroku twitter