SMTP协议解析
25端口
SMTP的连接和发送过程
(a)建立TCP连接
(b)客户端发出HELO命令以认证发件人的身份后, 执行MAIL操作;
服务器端正希望以OK作为响应,表明准备接收
(c)客户端提交相关命令用于标识该电子邮件的计划接收人,并允许多个RCPT行;
服务器端则表示是否愿意为收件人接收邮件
(d)协商结束,发送邮件,用命令DATA发送
(e)以.表示结束输入内容一起发送出去
(f)结束此次发送,用QUIT命令退出
SMTP常用的命令
SMTP命令不区分大小写,但参数区分大小写。常用命令如下:
HELO ——向服务器标识用户身份的发送者能够欺骗、说谎,在一般情况下服务器能够识别出
RCPT TO: 常用于指定邮件接收者的地址,在SMTP协议中通常允许有多个RCPT TO指令。
DATA ——将之后的数据作为数据发送,以.标志数据的结尾
REST ——重置会话,当前传输被取消
NOOP ——要求服务器返回OK应答,一般用作测试
QUIT ——结束会话
VRFY——用于检查指定的邮箱是否存在;由于安全考虑的原因,在大多数情况下该命令会被阻止。
EXPN用于检查给定的邮箱列表是否存在。出于安全考虑,服务器通常会禁止此操作.
HELP ——查询服务器支持什么命令
SMTP常用的响应
501——参数格式错误
502——命令不可实现
503——错误的命令序列
504——命令参数不可实现
211——系统状态或系统帮助响应
214——帮助信息
220——服务器就绪
221——服务关闭
421——服务器未就绪,关闭传输信道
250——要求的邮件操作完成
251——用户非本地,将转发向
450——要求的邮件操作未完成,邮箱不可用
550——要求的邮件操作未完成,邮箱不可用
451——放弃要求的操作,处理过程中出错
551——用户非本地,请尝试
452——系统存储不足,要求的操作未执行
552——过量的存储分配,要求的操作未执行
553——邮箱名不可用,要求的操作未执行
354——开始邮件输入,以“.”结束
554——操作失败
