用telnet发送电子邮件

6286阅读 14评论2006-01-20 flyoversky
分类:系统运维

SMTP基本命令集:
  命令 描述
  HELO 向服务器标识用户身份,发送者能欺骗,说谎,但一般情况下服务器都能检测到
  MAIL 初始化邮件传输 mail from:
  RCPT 标识单个的邮件接收人;常在MAIL命令后面,可有多个rcpt to:
  DATA 在单个或多个RCPT命令后,表示所有的邮件接收人已标识,并初始化数据传输,以.结束
  VRFY 用于验证指定的用户/邮箱是否存在;由于安全方面的原因,服务器常禁止此命令
  EXPN 验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用BR>  HELP 查询服务器支持什么命令
  NOOP 无操作,服务器应响应OK
  QUIT 结束会话
  RSET 重置会话,当前传输被取消
  MAIL FROM命令中指定的地址是称作envelope from地址,不需要和发送者自己的地址是一致的
  RCPT TO 与之等同,指明的接收者地址称为envelope to地址,而与实际的to:行是什么无关
 
现在的SMTP服务器一般都需要身份验证,下面是一个telnet发送邮件的例子:
 
telnet smtp.sina.com.cn 25
220 smtp.sina.com.cn ESMTP SINAMAIL (Postfix Rules!)
EHLO sina.com.cn
250-smtp.sina.com.cn
250-PIPELINING
250-SIZE 19660800
250-VRFY
250-ETRN
250-AUTH LOGIN
250-AUTH=LOGIN
250 8BITMIME
AUTH LOGIN
334 VXNlcm5hbWU6
dXNlcm5hbWU=
334 UGFzc3dvcmQ6
bXlwYXNzd29yZA==
235 Authentication successful
MAIL FROM:
250 Ok
RCPT TO:
250 Ok
DATA
502 Error: command not implemented
Data
354 End data with .
hello,this is a test.
.
250 Ok: queued as CB9AE175F6
Quit
221 Bye
 
下面是身份验证的部分
AUTH LOGIN‘客户端输入
334 VXNlcm5hbWU6‘服务端返回,明文为Username:
dXNlcm5hbWU=‘客户端输入,明文为username,即登陆用户名
334 UGFzc3dvcmQ6‘服务端返回,明文为Password:
bXlwYXNzd29yZA==‘客户端输入,明文为mypassword
235 Authentication successful‘服务端返回成功信息
 
其他部分应该没什么问题,身份验证部分使用了Base64编码,需要进行转换
但只要使用下面这段HTML代码就能轻松进行转化
源代码:

  
      base64 Encoding/Decoding
  
  
  
     
         Type in the message you want to encode in base64, or paste

         base64 encoded text into the text field, select Encode or Decode,

         and click the button!
        
                     onClick="document.base64Form.theText.value=encode64(document.base64Form.theText.value);">
                     onClick="document.base64Form.theText.value=decode64(document.base64Form.theText.value);">
     
  

 
 

 
上一篇:Ajax简介
下一篇:“感动中国”还是“欺骗中国”?

文章评论