通过 Office365 smtp(MEANjs 脚手架)使用 nodemailer 发送电子邮件时出错
Error sending email using nodemailer via Office365 smtp (MEANjs scaffold)
我正在尝试使用 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 字段没有任何区别。我错过了什么?
解决方法很简单。 'secure' 字段应为 'secureConnection'。生成配置的 MEANjs 脚手架创建了带有 'secure' 字段的邮件程序选项。其余的选项都很好。对于需要有效的 Office365 SMTP nodemailer 选项块的任何人,以下内容应该有效:
{
host: 'smtp.office365.com',
port: '587',
auth: { user: 'xxxx', pass: 'xxxx' },
secureConnection: false,
tls: { ciphers: 'SSLv3' }
}
此 nodemailer 文档 https://nodemailer.com/2-0-0-beta/setup-smtp/ 确实说明了 options.secure 而不是 options.secureConnection。它还表明,在一个示例中,options.secure 期望布尔值 true 或 false 而不是字符串值 'true'
或 'false'
。从 'false'
左右删除 ''
对我有用。
我知道这是旧的,但如果有人在 2019 年看到这个,你可以添加
service: "Outlook365"
而且您不必指定连接选项。
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>'
})
我的问题是用户名和密码拼写正确,但创建后我没有登录帐户。所以我使用邮件程序 (Thunderbird) 登录一次,必须更改我的密码,然后我可以通过 Nodemailer 访问。
我正在尝试使用 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 字段没有任何区别。我错过了什么?
解决方法很简单。 'secure' 字段应为 'secureConnection'。生成配置的 MEANjs 脚手架创建了带有 'secure' 字段的邮件程序选项。其余的选项都很好。对于需要有效的 Office365 SMTP nodemailer 选项块的任何人,以下内容应该有效:
{
host: 'smtp.office365.com',
port: '587',
auth: { user: 'xxxx', pass: 'xxxx' },
secureConnection: false,
tls: { ciphers: 'SSLv3' }
}
此 nodemailer 文档 https://nodemailer.com/2-0-0-beta/setup-smtp/ 确实说明了 options.secure 而不是 options.secureConnection。它还表明,在一个示例中,options.secure 期望布尔值 true 或 false 而不是字符串值 'true'
或 'false'
。从 'false'
左右删除 ''
对我有用。
我知道这是旧的,但如果有人在 2019 年看到这个,你可以添加
service: "Outlook365"
而且您不必指定连接选项。
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>'
})
我的问题是用户名和密码拼写正确,但创建后我没有登录帐户。所以我使用邮件程序 (Thunderbird) 登录一次,必须更改我的密码,然后我可以通过 Nodemailer 访问。