如果未选择推文则不发送电子邮件

时间:2016-01-27 13:15:59

标签: node.js email heroku twitter

正在处理此应用程序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);
        });
    });
}));
}

1 个答案:

答案 0 :(得分:0)

发送电子邮件的位是......

mandrill.messages.send

因此您只需将该代码包装在IF条件中。

if (number of tweets>0) {
     mandrill.messages.send
}

您只需确定正确的条件即可确定推文的数量是否大于0。

查看template_object并比较何时没有与有些匹配时的比较,并使用它来确定相关条件。