gpt4 book ai didi

c# - 当服务器和请求是本地的时,监听 SMTP 是有效的,但如果从远程服务器发出请求,它会失败

转载 作者:太空宇宙 更新时间:2023-11-03 11:19:32 27 4
gpt4 key购买 nike

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

当我在我的开发机器上运行我的 SMTP 服务器并有一个 php 脚本将电子邮件或 telnet 从我的本地计算机发送到本地 smtp 服务器时,它工作正常并且我的程序接收 SMTP 消息并且我发送相关响应。

然后我将程序复制到服务器上并运行我的 smtp 服务器,当我从服务器远程登录到本地 smtp 服务器时,即 telnet localhost 25 它工作。

如果我然后尝试通过同一网络上的远程 PC 连接到我的 smtp 服务器并尝试远程登录到它,我得到 正在连接到 192.168.1.74(这是服务器的地址)...可能未在端口 25 上打开与主机的连接:连接失败 如果我运行 php 脚本 http://192.168.1.74/send-mail.php 它会失败。

在 smtp 服务器代码上,当我绑定(bind)套接字时,我尝试在端口 25 上绑定(bind)到 127.0.0.1 和 192.168.1.74,但这没有区别。

为什么远程 PC 无法连接到服务器,但在本地却可以正常工作。

感谢您提供的任何帮助。

最佳答案

这里有一对情侣在黑暗中刺伤,但是:

  1. 服务器是否运行了防火墙?如果是这样,您是否对端口 25 进行了适当的异常(exception)处理?

  2. 远程 PC 真的在同一网络(即同一子网)上吗?如果中间有路由器,则必须适本地转发端口。

关于c# - 当服务器和请求是本地的时,监听 SMTP 是有效的,但如果从远程服务器发出请求,它会失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11485259/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com