无法通过nodemailer验证Outlook地址

时间:2018-02-11 14:27:38

标签: javascript outlook nodemailer

我正在尝试使用nodemailer验证Outlook电子邮件帐户。 但是,我不断得到同样的信息:

  

{错误:登录无效:535 5.7.3身份验证失败[CY1PR03CA0041.namprd03.prod.outlook.com]       在SMTPConnection._formatError(/user_code/node_modules/nodemailer/lib/smtp-connection/index.js:591:19)       在SMTPConnection._actionAUTHComplete(/user_code/node_modules/nodemailer/lib/smtp-connection/index.js:1320:34)       在SMTPConnection._responseActions.push.str(/user_code/node_modules/nodemailer/lib/smtp-connection/index.js:1278:18)       在SMTPConnection._processResponse(/user_code/node_modules/nodemailer/lib/smtp-connection/index.js:747:20)       在SMTPConnection._onData(/user_code/node_modules/nodemailer/lib/smtp-connection/index.js:543:14)       在TLSSocket._socket.on.chunk(/user_code/node_modules/nodemailer/lib/smtp-connection/index.js:694:51)       在emitOne(events.js:96:13)       在TLSSocket.emit(events.js:188:7)       在readableAddChunk(_stream_readable.js:176:18)       在TLSSocket.Readable.push(_stream_readable.js:134:10)     代码:' EAUTH',     响应:' 535 5.7.3认证失败[CY1PR03CA0041.namprd03.prod.outlook.com]',     responseCode:535,     命令:' AUTH LOGIN' }

这是我的nodemailer代码:

const functions = require('firebase-functions');
var nodemailer=require('nodemailer')

var transporter = nodemailer.createTransport("SMTP", {
auth: {
  user: 'username',
  pass: 'password'
},
service: "hotmail"

exports.sendMail 
=functions.database.ref('requestedChats').onWrite((event)=>{
const data = {
from: 'username@outlook.com',
to: 'mytest@gmail.com',
subject: 'Hello',
text: 'Test 1235'
}
transporter.sendMail(data, (err, info)=> {
if(err)
  console.log(err)
else
  console.log(info)
})
})'

4 个答案:

答案 0 :(得分:2)

您必须为O365用户启用身份验证的SMTP电子邮件应用

Check this answer

答案 1 :(得分:1)

我有时会遇到这个问题。检查Outlook帐户,查看邮件服务提供商是否向您发送了一封电子邮件以启用远程登录。

当您尝试从新服务器登录时,拒绝登录尝试(似乎是基于IP的检查)。手动批准登录尝试后,该服务器将被“列入白名单”。

同时检查主题(电子邮件标题)。它应该是纯文本,不应该包含HTML代码。

如果您仍然遇到此问题或未收到来自邮件服务提供商的任何电子邮件,这是一个真正的问题,最好不要联系邮件服务提供商寻求支持。

答案 2 :(得分:1)

我遇到了同样的问题,问题是这样的:

我正在使用托管服务提供商提供的凭据。默认设置是凭据由GEO安全保护,这意味着凭据无法在我的国家/地区使用。我当时在服务器在国外的Heroku上进行部署。这就是为什么我可以从本地主机发送电子邮件,而不能从已部署的应用程序发送电子邮件的原因。

我禁用了GEO安全性之后,一切正常进行。

答案 3 :(得分:1)

您必须在管理员设置中为O365邮箱或用户启用SMTP登录

如果用户已启用多因素,则需要使用“应用密码”,如果启用了MFA,则普通密码将不起作用。

您需要禁用安全默认设置或调整条件访问策略。

Check this answer