我在 Vista 上安装了 PuTTY。当我将其设置为 Telnet 并输入主机名 SMTP2Go.com 和端口 25 时,窗口打开一秒钟,不显示任何文本,然后关闭。我还尝试了端口 2525、587 和 8025,SMTP2Go 说这些端口也能正常工作,结果相同。我从命令提示符中使用 Telnet(我必须从控制面板启用它)打开端口 25 的 smtp2go.com,它可以正常工作。我还可以使用 PuTTY 和其他 Telnet 连接到 outgoing.verizon.net。我使用 Frontier 作为我的 ISP,他们的网站上说端口 25 已被阻止,其他人也证实了这一点,所以我发现我可以使用 Microsoft Telnet 在端口 25 上访问 SMTP2Go 很奇怪。SMTP2Go 能否确定我正在使用的客户端并阻止某些客户端?
另外,在 Microsoft Telnet 中,我的命令和 Verizon 服务器的响应之间没有换行符,但在 PuTTY 中却有。
答案1
只需在“连接类型”字段中选择“原始”即可正常工作。
来自PuTTY的文档:
许多互联网协议都是由纯文本的命令和响应组成的。例如,SMTP(用于传输电子邮件的协议)、NNTP(用于传输 Usenet 新闻的协议)和 HTTP(用于提供网页的协议)都是由可读纯文本的命令组成的。
有时,直接连接到这些服务之一并“手动”说出协议会很有用,方法是键入协议命令并观察响应。在 Unix 计算机上,您可以使用系统的 telnet 命令连接到正确的端口号来执行此操作。例如,telnet mailserver.example.com 25 可能使您能够直接与邮件服务器上运行的 SMTP 服务对话。
尽管 Unix telnet 程序提供了此功能,但所使用的协议实际上并不是 Telnet。实际上根本没有实际的协议;通过连接发送的字节正是您键入的字节,屏幕上显示的字节正是服务器发送的字节。Unix telnet 将尝试检测或猜测它正在与之通信的服务是否是真正的 Telnet 服务;PuTTY 更希望得到确切的信息。
为了与此类服务建立调试连接,您只需从“会话”配置面板中的“协议”按钮中选择第四个协议名称“Raw”即可。
答案2
这是因为“SMTP2Go.com”没有 SMTP 服务器,所以 Putty 只是关闭了一个不可能/不存在的连接。他们的 SMTP 服务器实际上是“mail.treshna.com”。查看这个 NSLOOKUP 来找到他们。
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\>nslookup
Default Server: google-public-dns-a.google.com
Address: 8.8.8.8
> set q=mx
> SMTP2Go.com
Server: google-public-dns-a.google.com
Address: 8.8.8.8
Non-authoritative answer:
SMTP2Go.com MX preference = 5, mail exchanger = mail.treshna.com
>
我能够使用 Putty 通过端口 25 远程登录到 mail.treshna.com。此外,当我通过命令行通过端口 25 远程登录到 SMTP2Go.com 时,只要我输入 EHLO,就会出现此错误:"554 SMTP synchronization error" and "Connection to host lost."
服务器 mail.treshna.com 不会响应通过命令行通过端口 25 远程登录的 EHLO。