Javascript 如何使用NodeEmailer在我的公司域中发送电子邮件?
这是我的代码:我尝试使用outlook帐户Javascript 如何使用NodeEmailer在我的公司域中发送电子邮件?,javascript,node.js,email,smtp,nodemailer,Javascript,Node.js,Email,Smtp,Nodemailer,这是我的代码:我尝试使用outlook帐户 const transporter = nodemailer.createTransport({ host: 'smtp.office365.com', auth: { user: 'account@mycompanydomain.com', pass: 'password' } }); transporter.verify(function(error, success) { if (error) { con
const transporter = nodemailer.createTransport({
host: 'smtp.office365.com',
auth: {
user: 'account@mycompanydomain.com',
pass: 'password'
}
});
transporter.verify(function(error, success) {
if (error) {
console.log(error);
} else {
console.log('Server is ready to take our messages');
}
});
我不确定这里有什么问题。以下是NodeEmailer日志:
[2020-03-17 09:55:34] DEBUG Creating transport: nodemailer (6.4.5; +https://nodemailer.com/; SMTP/6.4.5[client:6.4.5])
[2020-03-17 09:55:34] DEBUG [JAejdt6KMrw] Resolved smtp.office365.com as 40.100.54.194 [cache miss]
[2020-03-17 09:55:35] INFO [JAejdt6KMrw] Connection established to 40.100.54.194:587
[2020-03-17 09:55:35] INFO [JAejdt6KMrw] Connection upgraded with STARTTLS
[2020-03-17 09:55:36] DEBUG [JAejdt6KMrw] SMTP handshake finished
[2020-03-17 09:55:41] INFO [JAejdt6KMrw] User "account@mycompanydomain.com" failed to authenticate
[2020-03-17 09:55:41] DEBUG [JAejdt6KMrw] Closing connection to the server using "end"
Error: Invalid login: 535 5.7.3 Authentication unsuccessful [HK2PR04CA0060.apcprd04.prod.outlook.com]
at SMTPConnection._formatError (C:\Users\Nonoy\Documents\sample_apps\nodemailer_outlook_integration\node_modules\nodemailer\lib\smtp-connection\index.js:784:19)
at SMTPConnection._actionAUTHComplete (C:\Users\Nonoy\Documents\sample_apps\nodemailer_outlook_integration\node_modules\nodemailer\lib\smtp-connection\index.js:1523:34)
at SMTPConnection.<anonymous> (C:\Users\Nonoy\Documents\sample_apps\nodemailer_outlook_integration\node_modules\nodemailer\lib\smtp-connection\index.js:1481:18)
at SMTPConnection._processResponse (C:\Users\Nonoy\Documents\sample_apps\nodemailer_outlook_integration\node_modules\nodemailer\lib\smtp-connection\index.js:942:20)
at SMTPConnection._onData (C:\Users\Nonoy\Documents\sample_apps\nodemailer_outlook_integration\node_modules\nodemailer\lib\smtp-connection\index.js:749:14)
at TLSSocket.SMTPConnection._onSocketData (C:\Users\Nonoy\Documents\sample_apps\nodemailer_outlook_integration\node_modules\nodemailer\lib\smtp-connection\index.js:195:44)
at TLSSocket.emit (events.js:223:5)
at addChunk (_stream_readable.js:309:12)
at readableAddChunk (_stream_readable.js:290:11)
at TLSSocket.Readable.push (_stream_readable.js:224:10) {
code: 'EAUTH',
response: '535 5.7.3 Authentication unsuccessful [HK2PR04CA0060.apcprd04.prod.outlook.com]',
responseCode: 535,
command: 'AUTH LOGIN'
}
[2020-03-17 09:55:41] INFO [JAejdt6KMrw] Connection closed
备注:我的公司域位于Microsoft上,请参阅
也就是说,在transporter中,您缺少端口值
你可以把它放在主人的后面
端口–是要连接到的端口,如果是安全的,则默认为587
false或465(如果为true)
请参阅
也就是说,在transporter中,您缺少端口值
你可以把它放在主人的后面
端口–是要连接到的端口,如果是安全的,则默认为587
false或465(如果为true)
谢谢你的回答,伙计们都试过了。但我找到了解决办法 在我的office365帐户中,我进入设置、安全和隐私、附加安全验证,单击创建和管理应用程序密码。然后,它将允许您生成一个应用程序密码,然后将其用作您的NodeEmailer身份验证配置密码。如果您有类似于我的认证,这也将绕过双因素认证 请注意,您必须立即复制生成的密码。它只允许您复制一次密码。关闭窗口后,您将无法再次查看它
希望这有帮助 谢谢你的回答,大家都试过了。但我找到了解决办法 在我的office365帐户中,我进入设置、安全和隐私、附加安全验证,单击创建和管理应用程序密码。然后,它将允许您生成一个应用程序密码,然后将其用作您的NodeEmailer身份验证配置密码。如果您有类似于我的认证,这也将绕过双因素认证 请注意,您必须立即复制生成的密码。它只允许您复制一次密码。关闭窗口后,您将无法再次查看它 希望这有帮助 如果您有outlook帐户问题,则可以引用此问题;如果它实际上是NodeEmailer问题,则可以引用此问题(如果您有outlook帐户问题),如果它实际上是NodeEmailer问题,则可以引用此问题
var nodemailer = require('nodemailer');
// create reusable transporter object using the default SMTP transport
var transporter = nodemailer.createTransport('smtps://user%40gmail.com:pass@smtp.gmail.com');
// setup e-mail data with unicode symbols
var mailOptions = {
from: '"Simple ?" <borntest@foodcita.com>', // sender address
to: 'serta@foodcita.com, goip@foodcita.com', // list of receivers
subject: 'Hello ✔', // Subject line
text: 'Hello world ?', // plaintext body
html: '<b>Hello world ?</b>' // html body
};
// send mail with defined transport object
transporter.sendMail(mailOptions, function(error, info){
if(error){
return console.log(error);
}
console.log('Message sent: ' + info.response);
});