我正在像这样创建传输对象。
var transport = nodemailer.createTransport("SMTP", {
host: "smtp-mail.outlook.com", // hostname
secureConnection: false, // use SSL
port: 587, // port for secure SMTP
auth: {
user: "user@outlook.com",
pass: "password"
}
});
这是我尝试发送邮件时遇到的错误。
[错误: 139668100495168:错误:1408F10B:SSL 例程:SSL3_GET_RECORD:错误版本 数:。。/deps/openssl/openssl/ssl/s3_pkt.c:337: ]
当我尝试将忽略TLS设置为真时。这就是我得到的
{ [身份验证错误:无效登录 - 530 5.7.0 必须发出 STARTTLS 命令 first] 名称:"AuthError",数据:"530 5.7.0 必须发出 STARTTLS 命令优先' }
我做错了什么吗?请帮忙。
我遇到了同样的问题,直到我偶然发现了 https://github.com/andris9/Nodemailer/issues/165
尝试添加 tls 密码选项以使用 SSLv3。
var transport = nodemailer.createTransport("SMTP", {
host: "smtp-mail.outlook.com", // hostname
secureConnection: false, // TLS requires secureConnection to be false
port: 587, // port for secure SMTP
auth: {
user: "user@outlook.com",
pass: "password"
},
tls: {
ciphers:'SSLv3'
}
});
或者,对于hotmail/live/outlook,您可以简单地使用
var transport = nodemailer.createTransport("SMTP", {
service: "hotmail",
auth: {
user: "user@outlook.com",
pass: "password"
}
});
let testAccount = await nodemailer.createTestAccount();
let transporter = nodemailer.createTransport({
service: "Outlook365",
host: "smtp.office365.com",
port: "587",
tls: {
ciphers: "SSLv3",
rejectUnauthorized: false,
},
auth: {
user: "**********",
pass: "*******",
},
});
let info = await transporter.sendMail({
from: "********", // sender address
to: to, // list of receivers
subject: subject, // Subject line
html: html, // html body
});
You can use thing configuration for nodemailer with outlook account
如果您使用的是 Nodemailer 1.x 或更高版本,您可以使用:
var transporter = nodemailer.createTransport('smtp://username%40outlook.com:password@smtp-mail.outlook.com');
基本上,来自SSLv3
的错误,所以我有我的解决方案
let transporter = nodemailer.createTransport({
host: 'smtp-mail.outlook.com', // hostname
service: 'outlook', // service name
secureConnection: false,
tls: {
ciphers: 'SSLv3' // tls version
},
port: 587, // port
auth: {
user: "<Your Email>",
pass: "<Password>"
}
});
如果您使用的是 v5+
const transporter = nodemailer.createTransport({
host: "smtp-mail.outlook.com",
secureConnection: false,
port: 587,
service: "outlook",
auth: {
user: process.env.EMAIL_ID,
pass: process.env.EMAIL_PASSWORD,
},
tls: {
ciphers: "SSLv3",
},
});
它在 Nodemailer 版本 6.9.1 中对我有用,并且打字稿没有任何问题
const transporter = nodemailer.createTransport({
host: "smtp-mail.outlook.com",
port: 587,
tls: {
ciphers: "SSLv3",
rejectUnauthorized: false,
},
auth: {
user: "the your username",
pass: "the your pass",
},
});
它在 Nodemailer 版本 6.9.1 中对我有用,并且打字稿没有任何问题。
只需删除secureConnection: false
并将rejectUnauthorized: false
添加到 tls 对象即可。
const transporter = nodemailer.createTransport({
host: "smtp-mail.outlook.com",
port: 587,
tls: {
ciphers: "SSLv3",
rejectUnauthorized: false,
},
auth: {
user: "the your username",
pass: "the your pass",
},
});
tls: { 密码:"SSLv3" }+1 工作
对于第一个AGR("SMTP",不支持更高版本。