Meteor电子邮件:连接未关闭

Meteor电子邮件:连接未关闭,meteor,exim,Meteor,Exim,我正在使用Meteor.methods()向我的用户发送个性化电子邮件通知: Orders.\u collection.rawCollection() .distinct('user',{day:dayId}) 。然后((结果)=>{ 让邮件列表=[] User.find({u id:{$in:result}}).forEach((User)=>{ mailList.push({to:user.emails[0]。地址,房间:user.profile.room}); }); console.lo

我正在使用Meteor.methods()向我的用户发送个性化电子邮件通知:

Orders.\u collection.rawCollection()
.distinct('user',{day:dayId})
。然后((结果)=>{
让邮件列表=[]
User.find({u id:{$in:result}}).forEach((User)=>{
mailList.push({to:user.emails[0]。地址,房间:user.profile.room});
});
console.log('设置邮件队列…')
mailList.forEach((用户,索引)=>{
设延迟=0;
让时间=延迟+(指数*200);
console.log('为用户'+user.to''设置的队列,用于'+time/1000+'秒')
Meteor.setTimeout(()=>{
console.log('将邮件发送到:'+用户.to);
Email.send({
至:'用户。至',
来自:test@example.pl",
主题:“测试”,
html:模板,
});
},时间)
})
});
本例发送所有邮件,但如果有10条以上的邮件,EXIM将返回一个错误,即一个SMTP连接中有10条以上的邮件,邮件将在30分钟后移动到队列中发送。即使每次邮件后延迟2.5分钟,也会发生这种情况

邮件发送后,是否有任何方法关闭与服务器的smtp连接?
邮件url为:
smtp://localhost:25

电子邮件
包基于
node4mailer
(对
nodemailer
进行小的修改以在节点4上运行它)

默认情况下,用于传输选项。这意味着 它将重复使用已打开的连接,直到发送的消息量达到其限制,而
nodemailer

因此,通过修改
邮件URL
,您有两种解决问题的方法:

  • 10
    作为
    maxMessages
    传递给
    nodemailer
    传输:

    smtp://localhost:25/?maxMessages=10

  • 禁用池(这将导致
    nodeEmailer
    为每封电子邮件打开一个新连接):

    smtp://localhost:25/?pool=false


  • 有用链接
    nodemailer
    文档:

    Email
    包基于
    node4mailer
    (对
    nodemailer
    进行小的修改以在节点4上运行)

    默认情况下,用于传输选项。这意味着 它将重复使用已打开的连接,直到发送的消息量达到其限制,而
    nodemailer

    因此,通过修改
    邮件URL
    ,您有两种解决问题的方法:

  • 10
    作为
    maxMessages
    传递给
    nodemailer
    传输:

    smtp://localhost:25/?maxMessages=10

  • 禁用池(这将导致
    nodeEmailer
    为每封电子邮件打开一个新连接):

    smtp://localhost:25/?pool=false


  • 有用链接
    nodemailer
    文档:

    你试过邮枪吗?Meteor的电子邮件包适用于一次性和有限的使用,但Mailgun可能更适合您的使用情况。无法真正使用外部服务通过intranet发送数据:(您是否在运行此Meteor代码的同一台计算机上安装了EXIM?您是否尝试过mailgun?Meteor的电子邮件包适用于一次性和有限使用,但mailgun可能更适合您的使用情况。无法使用外部服务通过intranet发送数据:(您是否在运行此Meteor代码的同一台机器上安装了EXIM?完美答案!完美答案!