尝试使用 smtp-relay.gmail.com 和 Nodemailer 发送电子邮件。错误 ssl3_get_record:wrong 版本号
Trying to send email using smtp-relay.gmail.com and Nodemailer. Error ssl3_get_record:wrong version number
正在尝试通过 G Suite smtp-relay
使用 Nodemailer
发送电子邮件。
const transporter = nodemailer.createTransport({
host: "smtp-relay.gmail.com",
port: 587,
secure: true,
auth: {
user: "username@mydomain.com",
pass: "password"
}
});
const result = await transporter.sendMail({
from: `'"JOHN" <john@externaldomain.com>'`,
to: "hello@mydomain.com",
subject: "Hello",
text: "Hello world!",
});
这就是 G Suite 关于使用 TLS
的说法:Link1 Link2
Nodemailer 是这么说的:Link
继续
基本上 G Suite 告诉我应该为 TLS 使用端口 587,而 Nodemailer 告诉我不应该。
不知道它是否与端口有关,但这是我收到的错误:
注意:我正在尝试端口 587
。
{ [Error: 13252:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:c:\ws\deps\openssl\openssl\ssl\record\ssl3_record.c:332:
] code: 'ESOCKET', command: 'CONN' }
如果我更改到端口 465
,我会收到此错误:
'535-5.7.8 Username and Password not accepted. Learn more at\n535 5.7.8 https://support.google.com/mail/?p=BadCredentials ',
responseCode: 535,
command: 'AUTH PLAIN' }
我知道我的用户和密码是正确的。
我做错了什么?
Basically G Suite tells me that I should use port 587 for TLS, and Nodemailer says I shouldn't.
两者都在谈论不同的事情。第一个(G Suite)谈论 SSL 与 TLS,即比较协议的各种版本。第二个(Nodemailer)讨论显式与隐式 TLS,即使用 STARTTLS 命令(端口 25 和 587)显式升级普通连接或在 TCP 连接(端口 465)后直接建立 TLS。
因此,按照 Nodemailer 的建议设置 secure: false
。如果您想强制使用 TLS,即如果邮件服务器不支持 STARTTLS 则失败,则设置 requireTLS: true
as documented.
正在尝试通过 G Suite smtp-relay
使用 Nodemailer
发送电子邮件。
const transporter = nodemailer.createTransport({
host: "smtp-relay.gmail.com",
port: 587,
secure: true,
auth: {
user: "username@mydomain.com",
pass: "password"
}
});
const result = await transporter.sendMail({
from: `'"JOHN" <john@externaldomain.com>'`,
to: "hello@mydomain.com",
subject: "Hello",
text: "Hello world!",
});
这就是 G Suite 关于使用 TLS
的说法:Link1 Link2
Nodemailer 是这么说的:Link
继续
基本上 G Suite 告诉我应该为 TLS 使用端口 587,而 Nodemailer 告诉我不应该。
不知道它是否与端口有关,但这是我收到的错误:
注意:我正在尝试端口 587
。
{ [Error: 13252:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:c:\ws\deps\openssl\openssl\ssl\record\ssl3_record.c:332: ] code: 'ESOCKET', command: 'CONN' }
如果我更改到端口 465
,我会收到此错误:
'535-5.7.8 Username and Password not accepted. Learn more at\n535 5.7.8 https://support.google.com/mail/?p=BadCredentials ', responseCode: 535, command: 'AUTH PLAIN' }
我知道我的用户和密码是正确的。
我做错了什么?
Basically G Suite tells me that I should use port 587 for TLS, and Nodemailer says I shouldn't.
两者都在谈论不同的事情。第一个(G Suite)谈论 SSL 与 TLS,即比较协议的各种版本。第二个(Nodemailer)讨论显式与隐式 TLS,即使用 STARTTLS 命令(端口 25 和 587)显式升级普通连接或在 TCP 连接(端口 465)后直接建立 TLS。
因此,按照 Nodemailer 的建议设置 secure: false
。如果您想强制使用 TLS,即如果邮件服务器不支持 STARTTLS 则失败,则设置 requireTLS: true
as documented.