【问题标题】:Nodemailer taking too much time to send an e-mailNodemailer 花费太多时间来发送电子邮件
【发布时间】:2020-04-02 01:55:39
【问题描述】:

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

我正在使用节点邮件程序库,但是当我尝试发送电子邮件时,我需要将近 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!"})
            }
          }); 
});
});

我需要对我的代码进行哪些更改?

【问题讨论】:

  • 发送电子邮件需要 5 分钟,还是需要您在收件箱中接收?您是否将其发送到您的 gmail 收件箱?
  • 我的收件箱需要 5 分钟才能收到
  • 你考虑过延迟其实是你自己的邮箱提供商?

标签: node.js socket.io nodemailer


【解决方案1】:

当您收到邮件时检查邮件的标题,以确定邮件“卡住”的位置。它可能在原始服务器中,但可能更远(例如,垃圾邮件过滤器或转发器或只是中间某处的服务器)。如果它在除第一跳之外的任何地方,那么您可能无法在代码中执行任何操作来实际加快速度。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-20
    • 1970-01-01
    • 2018-07-08
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    • 2017-05-16
    • 2015-05-19
    相关资源
    最近更新 更多