繁体   English   中英

通过 Office365 smtp 使用 nodemailer 发送电子邮件时出错(MEANjs scaffold)

[英]Error sending email using nodemailer via Office365 smtp (MEANjs scaffold)

我正在尝试使用 Office365 SMTP 使用 Nodemailer(在 MEANjs 脚手架中)发送电子邮件,但出现以下错误:

[Error: 140735277183760:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:../deps/openssl/openssl/ssl/s23_clnt.c:795:]

我正在使用以下 Nodemailer 选项:

{ 
    host: 'smtp.office365.com',
    port: '587',
    auth: { user: 'xxxx', pass: 'xxxx' },
    secure: 'false',
    tls: { ciphers: 'SSLv3' }
}

删除tls字段没有区别。 我错过了什么?

解决办法很简单。 “安全”字段应为“安全连接”。 生成配置的 MEANjs 脚手架创建了带有“安全”字段的邮件程序选项。 其余选项都很好。 对于需要有效的 Office365 SMTP nodemailer 选项块的任何人,以下应该有效:

{ 
    host: 'smtp.office365.com',
    port: '587',
    auth: { user: 'xxxx', pass: 'xxxx' },
    secureConnection: false,
    tls: { ciphers: 'SSLv3' }
}

我知道这是旧的,但如果有人在 2019 年查找它,您可以添加service: "Outlook365"

并且您不必指定连接选项。

节点邮件程序文档

let transporter = nodemailer.createTransport({
    service: "Outlook365",
    auth: {
      user: 'FROMUSER@office365.com',
      pass: 'FROMUSERPASS'
    },    
  })

  let info = transporter.sendMail({
    from: 'FROMUSER@office365.com',
    to: 'TOUSER@office365.com',
    subject: 'Test',
    text: 'hello world',
    html: '<h1>TEST</h1>'
  })

此 nodemailer 文档https://nodemailer.com/2-0-0-beta/setup-smtp/确实声明了 options.secure 而不是 options.secureConnection。 在一个示例中,它还表明 options.secure 期望布尔值 true 或 false 而不是字符串值'true''false' 'false'周围删除''对我有用。

我的问题是用户名和密码拼写正确,但创建后我没有登录帐户。 所以我使用邮件程序(Thunderbird)登录一次,不得不更改我的密码,然后我可以通过 Nodemailer 访问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM