我一直在整个互联网上寻找这个问题的答案,可悲的是我离这个答案还很远。
今天我决定写一个 SMTP 用于从我的 RPi 发送/接收电子邮件的服务器。我想从头开始,所以不能切换到 Postfix。我在 Java 上编写了我的代码,所有的连接都是用套接字处理的。
我的服务器像我理解的那样工作 - 大多数 SMTP 服务器都工作:
- 电子邮件发件人通过端口 25 连接到我的服务器。
- 我说“220 你好,欢迎来到我的服务器”
- 然后他们回复 HELO 或 EHLO 等通信继续进行。
到目前为止,这对 GMail 非常有效、一些匿名电子邮件发送网站、mail.com 等,但我无法使其与 Hotmail 和 Yahoo 一起使用。他们连接,我给他们发送“220 Hello, etc”行,但是 他们根本不回复 HELO 或 EHLO 或任何东西 .
雅虎一直在尝试连接一段时间,但他们根本没有回复任何内容。同样,Hotmail 也没有。
你知道他们是否以某种特殊的方式工作,如果我把协议(protocol)弄乱了,或者会发生什么?
非常感谢你。
编辑
其他一些事情:
- 我使用的是无 IP 地址。
- 我正在监听端口 25、465 和 587,并且所有这些端口都已在我的路由器中打开。
最佳答案
确保您的行以 \r\n
结尾而不仅仅是\n
.
关于sockets - Yahoo 和 Hotmail 不会回复 HELO/EHLO 到我的 SMTP 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35934550/