在现代网络环境中,Mail Relay是个讨论得比较热烈的话题。如何允许外部用户或移动用户在公司的邮件服务器上进行Mail Relay是人们关注的焦点。随着标准化SASL认证的出现,并结合开放源软件Sendmail新版本中对SMTP AUTH的支持,该问题已经逐渐变得明朗而易于解决。本文是一个利用Telenet登录到Mail Server,并通过SMTP Server来发邮件的应用实例。在Unix/Linux的系统中,如果直接用Telnet测试某一个系统服务是否启动,只要输入“Telnet 主机IP地址”就可以简单地验证Service的启动状态,而且还能进一步与Server做一些指令的输入及交互操作,接下来还可用Telnet登录连接到一个Mail Server发一封信进行测试(前提是连接的Mail Server可以进行Relay,否则会被Mail Server当作广告垃圾邮件处理)。
操作步骤
1.首先,要连接到测试的Server IP及Service的端口。先假设一个域名“”,并使用如下命令:
#telnet http:/// 25 |
连接上Server后就会得到相关的显示信息,如下:
220 http:/// ESMTP Sendmail |
2.接下来,跟Sever“打声招呼”。要先报上自己的名字(假设是“aaa.bbb.ccc”域用户),并登录连接Mail Server,代码如下:
helo aaa.bbb.ccc |
同时,Mail Server 也会“回应”其所在的host和domain,以便用户能直观地看到目前所在的系统,显示如下:
250 http:/// |
3.再“报上”E-mail信箱(大小写无关),注意冒号后面要留一个空格,例如下面代码:
mail from: abc@aaa.bbb.ccc |
Server给的回应(代码250表示正常)如下:
250 abc@aaa.bbb.ccc Sender Ok |
4.接着,必须输入要发邮件的对方E-mail(大小写无关),同样要注意冒号后面留一个空格,代码如下:
rcpt to: admin@test.com |
Server给的回应(代码 250 表示正常)如下:
250 admin@test.com Recipient Ok |
5.紧接着输入“data”,表示要开始输入E-mail的内容,如下:
data |
正常情况下,Mail Server会先给出“提示”。写完E-mail的内容后,在新一行的开头处输入一个“.”符号,表示结束,代码如下:
354 End data with |
6. 然后,按照下面的“mime-version:”、“from:”、“to:”、“cc:”、“subject:”、“content-type:” 等固定的格式分别进行书写。这些信息是可选的,并不会影响E-mail的发送,会让E-mail的显示及邮件头比较完整,如下:
mime-version: 1.0 from: 马马 to: 妈妈 cc: 马马 subject: 这是一封测试邮件...cccc Content-Type: text/plain;charset="GB2312" |
7.按两下回车键,这是“RFC 882”规定的操作。
8.现在就可以开始输入E-mail的正文。
9.写完正文后,在一个空白行输入一个“.”号,再按回车键,就会出现类似下面的信息,表示Mail Server即将发送邮件:
250 Ok: queued as B10B51781D |
操作回顾
整个操作过程及登录连接上Mail Server后的“沟通”过程代码如下:
telnet http:/// 25 |
显示如下:
220 http:/// ESMTP Sendmail helo aaa.bbb.ccc 250 http:/// mail from: abc@aaa.bbb.ccc 250 abc@aaa.bbb.ccc Sender Ok rcpt to: admin@test.com 250 admin@test.com Recipient Ok data 354 End data with mime-version: 1.0 from: 马马 to: 妈妈 cc: 马马 subject: 这是一封测试邮件...cccc Content-Type: text/plain;charset="GB2312" aaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbb ccccccccccccccccccc . 250 Ok: queued as B10B51781D |
注意,按“Ctrl+]”即可中断连线;输入“quit”命令即可离开。