我正在做一个项目,我正在制作自己的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上工作,但在本地工作正常。
感谢您提供的任何帮助。
一对情侣在黑暗中被刺伤,但:
-
服务器是否有正在运行的防火墙?如果是,您是否对端口25进行了适当的例外处理?
-
远程电脑真的在同一网络(即同一子网)上吗?如果你在两者之间有一个路由器,你必须适当地转发端口。
发现问题出在哪里,我很笨,当我将网卡设置为静态时,我忘记添加默认网关。既然我已经做到了,它现在正在按预期工作。
感谢大家的帮助和建议。