正在尝试使用smtp-relay.gmail.com和NodeEmailer发送电子邮件。错误ssl3\u获取\u记录:版本号错误

正在尝试使用smtp-relay.gmail.com和NodeEmailer发送电子邮件。错误ssl3\u获取\u记录:版本号错误,email,ssl,tls1.2,nodemailer,google-workspace,Email,Ssl,Tls1.2,Nodemailer,Google Workspace,正在尝试使用Nodemailer通过G套件smtp中继发送电子邮件 以下是G套件关于使用TLS的说明: 这是NodeEmailer所说的: 继续 基本上,G套件告诉我应该为TLS使用端口587,而NodeEmailer说我不应该 不知道这是否与端口有关,但这是我得到的错误: 注意:我正在尝试端口587 {[错误:13252:错误:1408F10B:SSL例程:ssl3_获取_记录:错误的版本号:c:\ws\deps\openssl\openssl\SSL\record\ssl3_记录。c:332

正在尝试使用Nodemailer通过G套件smtp中继发送电子邮件

以下是G套件关于使用TLS的说明:

这是NodeEmailer所说的:

继续

基本上,G套件告诉我应该为TLS使用端口587,而NodeEmailer说我不应该

不知道这是否与端口有关,但这是我得到的错误:

注意:我正在尝试端口587

{[错误:13252:错误:1408F10B:SSL例程:ssl3_获取_记录:错误的版本号:c:\ws\deps\openssl\openssl\SSL\record\ssl3_记录。c:332: ]代码:'ESOCKET',命令:'CONN'}

如果切换到端口465,则会出现以下错误:

'535-5.7.8不接受用户名和密码。有关详细信息,请访问\n535 5.7.8', 响应代码:535, 命令:'AUTH PLAIN'}

我知道我的用户和密码是正确的

我做错了什么

基本上,G套件告诉我应该为TLS使用端口587,而NodeEmailer说我不应该

两人谈论不同的事情。第一个G套件讨论SSL与TLS,即比较协议的各种版本。第二个单节点发送者讨论显式与隐式TLS,即使用STARTTLS命令端口25和587显式升级普通连接,或直接在TCP连接端口465后建立TLS

因此,按照nodeEmailer的建议设置secure:false。如果要强制使用TLS,即如果邮件服务器不支持STARTTLS,则失败,然后将requireTLS设置为true

基本上,G套件告诉我应该为TLS使用端口587,而NodeEmailer说我不应该

两人谈论不同的事情。第一个G套件讨论SSL与TLS,即比较协议的各种版本。第二个单节点发送者讨论显式与隐式TLS,即使用STARTTLS命令端口25和587显式升级普通连接,或直接在TCP连接端口465后建立TLS


因此,按照nodeEmailer的建议设置secure:false。如果要强制使用TLS,即如果邮件服务器不支持STARTTLS,则会失败,然后将requireTLS设置为true。

这确实有效!谢谢你的详细回答,Steffen。这确实有效!谢谢你的详细回答,Steffen。
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!",
});