【问题标题】:nodemailer 2.x configuration for Office 365 direct sendOffice 365 直接发送的 nodemailer 2.x 配置
【发布时间】:2016-11-06 14:27:15
【问题描述】:

我正在使用 nodemailer v2.4.2 和 node.js v4.4.7,我想通过我的 Office 365 SMTP 邮件服务器从我的服务器发送电子邮件。我正在使用具有此配置的 smtpTransport v2.5.0:

var transporter = nodemailer.createTransport(smtpTransport({
  host: 'smtp.office365.com',
  port: 25, // have tried 465
  secureConnection: secure,
  auth: {
    user: username,
    pass: password
  },
  tls: {
    rejectUnauthorized: false // don't verify certificates
  },
  ignoreTLS: false // don't turn off STARTTLS support
}));

我已经尝试指定LOGINPLAIN 中的authMethod,但两者都没有任何区别。当我尝试发送电子邮件时出现错误:

[Error: Invalid login: 504 5.7.4 Unrecognized authentication type]
code: 'EAUTH',
response: '504 5.7.4 Unrecognized authentication type',
responseCode: 504

是否有人知道 Office 365 需要什么授权类型以及我是否需要在 nodemailer 设置中指定任何不同的设置?

【问题讨论】:

  • plz,如果解决了你的问题,请标记正确答案!

标签: office365 nodemailer


【解决方案1】:

这对我有用:

    var transporter = nodemailer.createTransport({
        host: 'smtp.office365.com', // Office 365 server
        port: 587,     // secure SMTP
        secure: false, // false for TLS - as a boolean not string - but the default is false so just remove this completely
        auth: {
            user: username,
            pass: password
        },
        tls: {
            ciphers: 'SSLv3'
        }
    });

您可能想添加:

    requireTLS: true

【讨论】:

  • 这行得通,而且解释很有帮助。谢谢
  • secure:false 并添加 requireTLS: true 对我有用,谢谢
【解决方案2】:

一个很晚的答案,但如果您使用 Office365 中的共享邮箱,您将无法通过 SMTP 进行身份验证。我也遇到了这个错误,然后才意识到这一点。

请参阅Can Office365 shared mailbox use SMTP? 了解相关信息。

【讨论】:

    【解决方案3】:
    var transporter = nodemailer.createTransport({
                      host: "smtpout.secureserver.net",
                      port: 587,
                      secureConnection: false,
                      secure: false,
                      requireTLS: true,
                      auth: {
                        user: emailUsr,
                        pass: emailPass
                      },
                      tls: {
                        rejectUnauthorized: false
                      }
                    });
    

    你可以试试这个配置

    【讨论】:

      【解决方案4】:

      在我的场景中,我必须确保电子邮件字段 From 使用的电子邮件地址与我用于邮箱登录的电子邮件地址相同 - 在 options 对象中:auth.user

      这样,只要我使用 STARTTLS 的 TLS 详细信息,例如auth.user.secure: falserequireTLS: truetls.ciphers: 'SSLv3',我设法用 Nodemailer 发送了一封电子邮件。

      【讨论】:

        【解决方案5】:
        let testAccount = await nodemailer.createTestAccount();
              let transporter = nodemailer.createTransport({
                service: "Outlook365",
                host: 'smtp.office365.com',
                port: '587',
                tls: {
                  ciphers:'SSLv3',
                  rejectUnauthorized: false 
                },
                auth: {
                    user: "",
                    pass: ""
                }
              });
        

        您可以使用带有 node-mailer 的 office 365/outlook 配置来使用 Outlook 帐户发送邮件 -

        【讨论】:

        • 您可以使用office 365/outlook 配置和node-mailer 使用outlook 帐号发送邮件
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-27
        • 2021-12-09
        • 1970-01-01
        • 1970-01-01
        • 2022-09-24
        • 2016-10-18
        相关资源
        最近更新 更多