Nodemailer花费太多时间发送电子邮件

时间:2019-12-08 23:20:48

标签: node.js socket.io nodemailer

我正在构建一个发送电子邮件的通知服务器。

我正在使用节点邮件程序库,但是当我尝试发送电子邮件时,大约需要5分钟才能收到收件箱中的内容

我已经搜索了发生这种情况的原因,而我发现的唯一答案就是响应内容,以告知浏览器请求已完成。可能是这样的:res.send(xxx)。

但是我正在使用套接字自动发送电子邮件,我需要改进我的服务器吗?我的代码:

var transporter = nodemailer.createTransport({
  host: 'smtp.gmail.com',
  port: 465,
  secure: true,
  auth: {
    user: '...',
    pass: '...'
  }
});

...

io.on('connection', function(socket){
socket.on('notify', function(object) {
var mailOptions = {
            from: '...',
            to: object.message.sendTo,
            subject: object.message.subject,
            html: object.template
        };

        transporter.sendMail(mailOptions, function(error, info){
            if (error) {
              socket.emit("error", {data : "Error!"})
            } else {
              socket.emit("sent", {data : "Email successfully sent!"})
            }
          }); 
});
});

我需要更改我的代码吗?

1 个答案:

答案 0 :(得分:0)

在收到电子邮件标题时,请检查它们,以查明电子邮件“卡住”的位置。它可能在原始服务器中,但可能更远(例如,垃圾邮件过滤器或转发器,或者只是中间的某个服务器)。如果除了第一跳以外的任何地方,那么您在代码中可能就无能为力地加快速度。