#每天都是崭新的一天#再累也要照顾好自己
利用nodemailer发送邮件,每一次请求都会发多遍email
发布于 作者 suning 421 次浏览 来自 分享

1、当时的情况:

我用两个邮箱作为模拟的数据,但是我写的方式是

        let email = [{
            email: 'saucxs@163.com',
            name: 'saucxs'
        },{
            email: 'suningcxs@163.com',
            name: 'suningcxs'
        }]
        for(let i=0,length=email.length;i<length;i++){
            setInterval(function(){
                smtpTransport.sendMail({
                    from: mailer.account,
                    to: email[i].email,
                    subject: '最新文章-sau交流学习社区-power by saucxs',
                    html: '测试'
                },function (err, res) {
                    console.log(err,res,'日志------------------------------------------------');
                })
                },10*60*1000);
        }

我用for循环,调用smtpTransport.sendMail方法,我担心邮箱对同一时间发送邮件数量有控制,所以使用了定时器,每隔10分钟调用一次方法,发现发送邮件是异步进行的,nodemailer会自己开一个线程去发送邮件,所以如果是利用在web发送邮件的操作中,对性能影响不大时,我们可以不用消息队列,响应时间也会比较快。

这时候我发现同一时间收到两封邮件。郁闷。。。。。。。。。。。。。。


2、第二种情况

我当时怀疑是

        let email = [{
            email: 'saucxs@163.com',
            name: 'saucxs'
        },{
            email: 'suningcxs@163.com',
            name: 'suningcxs'
        }]
        for(let i=0,length=email.length;i<length;i++){
            smtpTransport.sendMail({
                from: mailer.account,
                to: email[i].email,
                subject: '最新文章-sau交流学习社区-power by saucxs',
                html: '测试'
            },function (err, res) {
                console.log(err,res,'日志------------------------------------------------');
            })
        }

还是发送两遍


三、后来官方文档上发现,不能这么写

配置的单独写出来。

let email = [{
            email: 'saucxs@163.com',
            name: 'saucxs'
        },{
            email: 'suningcxs@163.com',
            name: 'suningcxs'
        }]
let option = {
	from: mailer.account,
        to: email[i].email,
        subject: '最新文章-sau交流学习社区-power by saucxs',
        html: '测试'
        }
smtpTransport.sendMail(option,function (err, res) {
     console.log(err,res,'日志------------------------------------------------');
})


发布评论
微信群
saucxs聊天机器人
saucxs
hi ,欢迎来到sau交流学习社区,欢迎与我聊天,问我问题哦!
您正在使用的浏览器是,不在支持范围内!
为了您的正常使用与展示,推荐使用Chrome浏览器68以上版本
支持浏览器:
火狐浏览器最新版
Safari浏览器最新版
Edge浏览器最新版
IE浏览器10,11