【问题标题】:Error sending email using nodemailer via Office365 smtp (MEANjs scaffold)通过 Office365 smtp(MEANjs 脚手架)使用 nodemailer 发送电子邮件时出错
【发布时间】:2015-06-30 23:18:01
【问题描述】:

我正在尝试使用 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 字段并没有什么不同。我错过了什么?

【问题讨论】:

    标签: node.js email office365 meanjs nodemailer


    【解决方案1】:

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

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

    【讨论】:

    • 当我尝试使用您提供的 opts 时,它不起作用并出现超时错误。我必须删除 secureConnection 才能让它工作。谢谢!
    • 非常感谢!就我而言,它适用于以下设置:"secure": false, "tls": { "ciphers": "SSLv3" }
    【解决方案2】:

    我知道这很旧,但如果有人在 2019 年查到这个,你可以添加 service: "Outlook365"

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

    Node Mailer Docs

    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>'
      })
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 我是 stackoverflow 的新手。我想知道为什么对有效答案投反对票。 Simon H 所做的只是在一些文本周围放置了灰色框。当我的本意是帮助别人时,我很苛刻。
      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2017-06-17
        • 2015-02-21
        • 2014-01-04
        • 1970-01-01
        • 1970-01-01
        • 2016-07-18
        • 2017-05-16
        • 2021-12-28
        相关资源
        最近更新 更多