1

我正在使用nodemailer在我的 nodejs 应用程序中发送电子邮件。

var payload = { auth: 
               {
                user: smtpuser,
                pass: smtppass
               },
                to : toAddr,
                from  : emailfrom,
                cc : ccAddr,
                subject : subject,
                html    : content,
                attachments: attachments
              };

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

transporter.sendMail(payload, function (error, info) {
                if (error) {
                    return console.log(error);
                }
                updateMessage(updatedMsg);
            });

我开始收到此错误:

错误:无效登录:535 5.7.3 身份验证不成功 [SN4PR0601CA0002.namprd06.prod.outlook.com]

看来我的团队现在已禁用基本身份验证。

我需要实现现代身份验证(Oauth2)才能通过nodemailer使用 Outlook id 发送邮件。

有人对此有任何想法吗?这需要哪些配置(代码)更改?

4

1 回答 1

2

我建议您使用 Microsoft Graph 发送电子邮件。有一个易于使用的 REST API 可以很好地与 OAuth 配合使用。

请在下面找到一些链接,以帮助您快速构建它。

https://docs.microsoft.com/en-us/graph/api/user-sendmail?view=graph-rest-1.0&tabs=http https://docs.microsoft.com/en-us/graph/auth/ auth-concepts?view=graph-rest-1.0 https://docs.microsoft.com/en-us/graph/tutorials/node?view=graph-rest-1.0

于 2019-10-17T08:22:26.183 回答