我使用nodemailer v2.4.2和node.js v4.4.7,我想通过我的Office 365 SMTP邮件服务器从我的服务器发送电子邮件。我使用带有此配置的smtpTransport v2.5.0:
var transporter = nodemailer.createTransport(smtpTransport({
host: 'smtp.office365.com',
port: 25, // have tried 465
secureConnection: secure,
auth: {
user: username,
pass: password
},
tls: {
rejectUnauthorized: false // don't verify certificates
},
ignoreTLS: false // don't turn off STARTTLS support
}));
我已尝试指定authMethod
LOGIN
和PLAIN
,但两者都没有任何区别。当我尝试发送电子邮件时出现错误:
[Error: Invalid login: 504 5.7.4 Unrecognized authentication type]
code: 'EAUTH',
response: '504 5.7.4 Unrecognized authentication type',
responseCode: 504
有没有人知道Office 365预期的授权类型以及我是否需要在nodemailer设置中指定任何不同的设置?
答案 0 :(得分:18)
这对我有用:
var transporter = nodemailer.createTransport({
host: 'smtp.office365.com', // Office 365 server
port: 587, // secure SMTP
secure: false, // false for TLS - as a boolean not string - but the default is false so just remove this completely
auth: {
user: username,
pass: password
},
tls: {
ciphers: 'SSLv3'
}
});
您可以添加:
requireTLS: true
答案 1 :(得分:1)
答案非常晚,但如果您使用的是Office365的共享邮箱,则无法通过SMTP进行身份验证。我也遇到了这个错误然后意识到这一点。
有关此信息,请参阅Can Office365 shared mailbox use SMTP?。
答案 2 :(得分:0)
var transporter = nodemailer.createTransport({
host: "smtpout.secureserver.net",
port: 587,
secureConnection: false,
secure: false,
requireTLS: true,
auth: {
user: emailUsr,
pass: emailPass
},
tls: {
rejectUnauthorized: false
}
});
您可以尝试使用此配置
答案 3 :(得分:0)
在我的场景中,我必须确保电子邮件字段 From
使用的电子邮件地址与我用于邮箱登录的电子邮件地址相同 - 在位于 options
的 auth.user
对象中。>
这种方式,前提是我使用了 STARTTLS
的 TLS 详细信息,例如auth.user.secure: false
、requireTLS: true
和 tls.ciphers: 'SSLv3'
,我设法用 Nodemailer 发送了一封电子邮件。