正在尝试使用smtp-relay.gmail.com和NodeEmailer发送电子邮件。错误ssl3\u获取\u记录:版本号错误
尝试使用G套件正在尝试使用smtp-relay.gmail.com和NodeEmailer发送电子邮件。错误ssl3\u获取\u记录:版本号错误,email,ssl,tls1.2,nodemailer,google-workspace,Email,Ssl,Tls1.2,Nodemailer,Google Workspace,尝试使用G套件smtp中继发送电子邮件使用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.
smtp中继发送电子邮件使用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!",
});
const transporter=nodeEmailer.createTransport({
主机:“smtprelay.gmail.com”,
港口:587,
安全:是的,
认证:{
用户:“username@mydomain.com",
通行证:“密码”
}
});
const result=wait transporter.sendMail({
发件人:“‘约翰’”`,
至:hello@mydomain.com",
主题:“你好”,
文字:“你好,世界!”,
});
这是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,即比较协议的各种版本。第二个(nodeEmailer)讨论显式与隐式TLS,即使用STARTTLS命令显式升级普通连接(端口25和587)或直接在TCP连接(端口465)后建立TLS
因此,按照NodeEmailer的建议设置secure:false
。如果您想要强制使用TLS,即如果邮件服务器不支持STARTTLS,则失败,然后设置requireTLS:true
,这确实有效!谢谢你的详细回答,Steffen。