SMTP协议命令
SMTP命令是发送于
SMTP主机之间的
ASCⅡ信息,可能使用到的命令如下表所示。
SMTP协议命令
命令 |
描述 |
DATA |
开始信息写作 |
EXPN<string> |
验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用 |
HELO<domain> |
向服务器标识用户身份,返回邮件服务器身份 |
HELP<command> |
查询服务器支持什么命令,返回命令中的信息 |
MAIL FROM<host> |
在主机上初始化一个邮件会话 |
NOOP |
无操作,服务器应响应OK |
QUIT |
终止邮件会话 |
RCPT TO<user> |
标识单个的邮件接收人;常在MAIL命令后面可有多个rcpt to: |
RSET |
重置会话,当前传输被取消 |
SAML FROM<host> |
发送邮件到用户终端和邮箱 |
SEND FROM<host> |
发送邮件到用户终端 |
SOML FROM<host> |
发送邮件到用户终端或邮箱 |
TURN |
接收端和发送端交换角色 |
VRFY<user> |
用于验证指定的用户/邮箱是否存在;由于安全方面的原因,服务器常禁止此命令 |
SMTP协议工作原理
SMTP是工作在两种情况下:一是电子邮件从客户机传输到服务器:二是从某一个服务器传输到另一个服务器。
SMTP也是个请求/响应协议,命令和响应都是基于
ASCⅡ文本,并以
CR和
LF符结束。响应包括一个表示返回状态的三位数字代码。
SMTP在
TCP协议25号端口监听连续请求。
连接和发送过程如下:
(1)建立
TCP 连接。
(2)客户端发送
HELO命令以标识发件人自己的身份,然后客户端发送
MAIL命令;服务器端正希望以
OK作为响应,表明准备接收。
(3)客户端发送
RCPT命令,以标识该电子邮件的计划接收人,可以有多个
RCPT行;服务器端则表示是否愿意为收件人接收邮件。
(4)协商结束,发送邮件,用命令
DATA发送。
(5)以“
.”号表示结束输入内容一起发送出去,结束此次发送,用
QUIT命令退出。