当服务器和请求位于本地时,侦听SMTP可以工作,但如果从远程服务器执行请求,则会失败


Listening for SMTP works when server and request is local but if doing the request from a remote server it fails

我正在做一个项目,我正在制作自己的SMTP服务器。这很有效,但有一点问题。

当我在开发机器上运行SMTP服务器,并使用php脚本将电子邮件或telnet从本地计算机发送到本地SMTP服务器时,它运行良好,我的程序接收SMTP消息,并发送相关响应。

然后,我将程序复制到服务器上并运行我的smtp服务器,当我从服务器telnet到本地smtp服务器(即telnet localhost 25)时,它就可以工作了。

如果我尝试通过同一网络上的远程PC连接到我的smtp服务器,并尝试telnet到它,我会得到Connecting to 192.168.1.74 (this is the address of the server)...could not open connection to the host, on port 25: connect failed,如果我运行php脚本http://192.168.1.74/send-mail.php,它会失败。

在smtp服务器代码中,当我绑定套接字时,我尝试在端口25上绑定127.0.0.1和192.168.1.74,但没有什么区别。

为什么这不能在连接到服务器的远程PC上工作,但在本地工作正常。

感谢您提供的任何帮助。

一对情侣在黑暗中被刺伤,但:

  1. 服务器是否有正在运行的防火墙?如果是,您是否对端口25进行了适当的例外处理?

  2. 远程电脑真的在同一网络(即同一子网)上吗?如果你在两者之间有一个路由器,你必须适当地转发端口。

发现问题出在哪里,我很笨,当我将网卡设置为静态时,我忘记添加默认网关。既然我已经做到了,它现在正在按预期工作。

感谢大家的帮助和建议。