SMTP服务器工作,但telnet到端口25不

我正在运行一个轻量级的SMTP服务器来处理传入的电子邮件。 我使用https://github.com/kennethreitz/inbox.py 。 我在防火墙中打开了端口25,并在0.0.0.0:25运行服务器。

一切正如我所料。 当我发送电子邮件到[email protected]服务器收到消息。

对我来说很奇怪的是,当我从VPS的外部telnet到25端口时,它没有连接超时:

$ telnet mydomain.com 25 Trying <IP address removed>... telnet: connect to address <IP address removed>: Operation timed out telnet: Unable to connect to remote host 

当我从VPS内部远程login时,它的工作原理是:

 $ telnet localhost 25 Trying ::1... Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 hobnob Python SMTP proxy version 0.2 

我想不出为什么会发生这种情况。 会是什么呢?

更新:

我能够使用Python shellbuild立连接:

 from smtplib import SMTP conn = SMTP('mydomain.com') 

我确认如果服务器没有运行,这将失败。 看来也许这个远程login不能正确连接? 我不确定,但很显然,可以通过电子邮件软件与服务器build立连接,这正是我真正想要testing的。

这有很多原因。

您的VPS提供商可能会阻止端口25。 许多人会要求你特别要求将其打开,以帮助减less垃圾邮件。

此外,您的防火墙可能会阻止端口25的入站stream量。 摆脱这一点。

另一个常见的事情是只在本地主机上进行监听,不过因为你已经设置了0.0.0.0作为不应该成为问题的绑定地址。

通常,收到的邮件将通过其他一些端口(特别是在端口587上提交)进入,所以您仍然可能收到端口25阻塞的邮件。