我正在用 node.js 编写一个 SMTP 客户端。我成功地在本地主机上运行的 SMTP 服务器上对其进行了测试。但是我发现我无法连接到 gmail 的服务器。尝试使用 telnet 时,我遇到了同样的问题。
telnet gmail-smtp-in.l.google.com 587
挂起,并且从未响应。我确实在 smtp.gmail.com 上收到了响应,但这似乎不是我想要的。我做错了什么,我该如何正确实施它。
- 更新 -
为了清楚起见,我正在从我自己的 smtp 服务器向一个 gmail 帐户发送电子邮件
答案1
如果您没有收到任何响应,则可能是您的 ISP 阻止了出站端口 25 连接。这很常见,是一种阻止消费者网络上的僵尸网络垃圾邮件的技术。请参阅 MAAWG 文档管理端口 25。
从真实主机发送 - Amazon EC2 服务器将会起作用。
另外,要将邮件发送到 Gmail,您需要端口 25,而不是 587。
答案2
Gmails SMTP 服务器需要端口 587 上的 STARTTLS 或端口 465 上的 TLS。您必须进行身份验证。
我建议你看看官方 Gmail 文档, 还有一些代码示例其他人是如何实施的通过 SMTP 发送邮件/Gmail 使用 Node。
答案3
openssl s_client -connect smtp.gmail.com:465
https://medium.com/cuonghuynh/login-gmail-via-command-line-openssl-8f5545b61e3b