cbd*_*per 1 email ssl nodemailer tls1.2 google-workspace
试图以G套房发送电子邮件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!",
});
Run Code Online (Sandbox Code Playgroud)
这就是 G Suite 所说的使用TLS:Link1 Link2
这是 Nodemailer 所说的:链接
继续
基本上 G Suite 告诉我我应该为 TLS 使用端口 587,而 Nodemailer 说我不应该。
不知道它是否与端口有关,但这是我收到的错误:
注意:我正在尝试 port 587。
{ [错误:13252:错误:1408F10B:SSL 例程:ssl3_get_record:错误的版本号:c:\ws\deps\openssl\openssl\ssl\record\ssl3_record.c:332:] 代码:'ESOCKET',命令:'连接'}
如果我更改为 port 465,则会收到此错误:
'535-5.7.8 用户名和密码不被接受。在\n535 5.7.8 https://support.google.com/mail/?p=BadCredentials了解更多 信息,响应代码:535,命令:'AUTH PLAIN' }
我知道我的用户和通行证是正确的。
我究竟做错了什么?
基本上 G Suite 告诉我我应该为 TLS 使用端口 587,而 Nodemailer 说我不应该。
两者谈论不同的事情。第一个(G Suite)谈论 SSL 与 TLS,即比较协议的各种版本。第二个(Nodemailer)讨论了显式与隐式 TLS,即使用 STARTTLS 命令(端口 25 和 587)显式升级普通连接或在 TCP 连接后直接建立 TLS(端口 465)。
因此,请按照 Nodemailer 的建议设置secure: false. 如果您想强制使用 TLS,即如果邮件服务器不支持 STARTTLS 则失败,则设置requireTLS: true 为文档。
| 归档时间: |
|
| 查看次数: |
1749 次 |
| 最近记录: |