我正在编写一个通过有效的 GMail 用户 ID 和密码发送邮件的应用程序。
我只是想在 Windows XP 命令行上模拟 SMTP 连接,当我远程登录时smtp.gmail.com
在 465 端口 - 我没有看到任何东西。带标题的空白命令窗口Telnet smtp.gmail.com
用光标打开。当我输入时EHLO
或通常的 SMTP 握手命令,提示符就会关闭。
我无法弄清楚出了什么问题以及出在哪里。我尝试连接到 587,它根本无法在 telnet 中连接。如果我做错了什么,有人可以澄清吗?
使用 Linux 或 OSx,按照 Sorin 的建议进行操作,但使用端口 465。 25 是通用 SMTP 端口,但不是 GMail 使用的端口。另外,我不相信你想使用 -starttls smtp
openssl s_client -connect smtp.gmail.com:465
您应该获得有关 SSL 会话和响应的大量信息:
220 mx.google.com ...
Type in
HELO smtp.gmail.com
您将收到:
250 mx.google.com at your service
从那里开始,它并不像发送 SMTP 邮件那么简单,因为 Gmail 具有适当的保护措施,可确保您只发送看似来自实际属于您的帐户的电子邮件。不要输入“Helo”,而使用“Ehlo”。我对 SMTP 不太了解,所以我无法解释其中的区别,也没有时间进行太多研究。也许有更多知识的人可以解释一下。
然后,输入“auth login”,您将收到以下信息:
334 VXNlcm5hbWU6
这本质上是用 Base 64 编码的“用户名”一词。使用 Base 64 编码器,例如this one http://www.opinionatedgeek.com/dotnet/tools/base64encode/,对您的用户名进行编码并输入。对接下来要求的密码执行相同的操作。你应该看到:
235 2.7.0 Accepted
就这样,您已登录。
如果您使用 OSx 或 Linux 终端,还有一个奇怪的问题需要克服。仅按“ENTER”键显然不会导致 SMTP 需要结束邮件所需的 CRLF。您必须使用“CTRL+V+ENTER”。因此,这应该如下所示:
^M
.^M
250 2.0.0 OK
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)