服务器 频道

经验谈:玩转Telnet方式发送邮件

    【IT168 专稿】我们都知道可以通过telnet到运行SMTP服务的计算机上来诊断SMTP通讯问题,比如,您有两台Exchange 服务器,这两台服务器在通过SMTP协议发送邮件时有问题,您可以通过在源服务器上使用telnet命令连接到目标服务器的25号端口来测试SMTP的连接性。在缺省情况下,SMTP侦听在25号端口上,如果您的Exchange 服务器无法从Internet接收邮件的话,您也可以从Internet 上的一台计算机上telnet 到您的Exchange 服务器的25号端口 来诊断该问题。

    在默认情况下,使用telnet方式连接到Exchange 服务器是匿名的方式,也就是说没有经过身份验证。先介绍一下测试的环境,Exchange 服务器为2007 RTM,所在的域为exchange.com,服务器的IP地址为192.168.11.7,在默认的接收连接器上的Permission Group栏上的设置如图1所示。身份验证方法仅选中了基本身份验证,如图2所示。客户端的操作系统为Windows XP SP1。


一、匿名登录

   1. 首先在客户端上打开命令行窗口,然后输入下面的命令回车,

    telnet 192.168.11.7 25

    2. 出现如图3所示的画面,然后输入下面的命令:


    ehlo

    3. 出现如图4所示的画面,然后输下面的命令告诉接收服务器该邮件来自哪个发件人:


    Mail from:rock@exchange.com

    4. 这时会出现如图5所示的界面,然后输入下面的命令:


    Rcpt to:test@sohu.com

    5. 系统出现550 5.7.1 Unable to relay提示,如图6所示,因为发件人没有经过身份验证,该邮件无法通过Exchange 2007服务器来中继。
 
    6. 但是如果我们输入下面的命令,则不会收到图6所示的错误。


    rcpt to:rock001@exchange.com

    7. 您会收到如图7所示的界面,然后您可以输入下面的命令来告诉SMTP服务器您准备发送数据了。


    data

    您将收到下面的回复:

    354 Send data. End with CRLF.CRLF

    8. 现在您可以输入邮件的822/2822 部分了,用户将会在收件箱中看到该邮件的这部分内容。您可以输入subject来指定邮件的标题。

    subject: test message

    然后按两次回车,您将看不到任何回复。

    9. 然后输入下面的内容来增加邮件的正文。

    This is a test message you will not see a response from this command.

    10. 在下一个空行中键入英文句点 (.),然后按 Enter 键。 您会收到

    250 OK

    如图7所示。

    11. 然后输入下面的命令关闭连接。

    quit
二、经过身份验证后的telnet

    如何才让telnet 也能通过身份验证呢。下面将具体描述如何实现这一过程:

    1. 首先前两个步骤和匿名一样,在输入telnet 192.168.11.7 25和ehlo命令,

    2. 然后输入下面的命令:
    auth login

    回车后,您将看到334 VXNlcm5hbWU6,请注意,VXNlcm5hbWU6是基于base 64编码,我们可以通过一个名叫base64.exe的工具可以将它转为我们可以看懂的格式,该工具可以从Internet上下载。VXNlcm5hbWU6转化后为username:

    该工具的使用方法如下:

    a) 先将工具解压到本地文件夹,比如c:\base64,
    b) 然后进入命令行模式,切换到该目录,然后将打开notepad,输入rock,并另存为1.txt,
    c) 然后输入下面的命令:
    Base64 –encode 1.txt 2.txt
    注意:-encode表示加密,-decode 表示解密。如果您知道base64编码可以通过下面的命令来将它解密:
    Base64 –decode 2.txt 1.txt 
    d) 打开2.txt文件,即可看到rock对应的base64编码为cm9jaw==。


    3. 然后您需要输入用户的名称对应的base64编码格式,这里我们假设用户名为rock,rock的base64编码为cm9jaw==,输入下面的命令:
    cm9jaw==

    4. 回车后,您将看到334 UGFzc3dvcmQ6,UGFzc3dvcmQ6转换后的格式为password:

    5. 假设用户rock的密码为1,1对应的base64编码为MQ==,然后输入:
    MQ==

    6. 回车后,您将看到235 2.7.0 Authentication successful的提示,说明认证成功了。如图8所示。


    7. 然后输入下面的命令:
    Mail from:rock@exchange.com
    回车后,系统出现250 2.1.0 Sender OK提示,

    8. 然后输入下面的命令:
    rcpt to:test@sohu.com
    回车后,系统会出现250 2.1.5 Recipient OK,而不会出现550 5.7.1 Unable to relay的提示。

    通过身份验证的用户可以通过该Exchange 2007服务器来中继邮件。

    9. 剩下的步骤和匿名登录中的7-11步一样。我们在此不在详细描述了。
0
相关文章