SMTP(Simple MailTransfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议族,是定义邮件传输最常用的协议,由RFC821所定义.它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。http://baike.baidu.com/view/5450.htm
基本命令集
命令 | 命令用途 |
HELO | 向服务器标识用户身份发送者能欺骗、说谎, 但一般情况下服务器都能检测到 |
| 初始化邮件传输,以mail from:开始 |
RCPT | 标识单个的邮件接收人;常在MAIL命令后面,可有多个rcpt to: |
DATA | 在单个或多个RCPT命令后,表示所有的邮件接收人已标识, 并初始化数据传输,以.结束 |
VRFY | 用于验证指定的用户/邮箱是否存在; 由于安全方面的原因,服务器常禁止此命令 |
EXPN | 验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用 |
HELP | 查询服务器支持什么命令 |
NOOP | 无操作,服务器应响应OK |
QUIT | 结束会话 |
RSET | 重置会话,当前传输被取消 |
命令返回值列表
| 返回值代码 | 返回值含义 |
错误返回值 | 500 | 邮箱地址错误 |
501 | 参数格式错误 | |
502 | 命令不可实现 | |
503 | 服务器需要SMTP验证 | |
504 | 命令参数不可实现 | |
421 | 服务未就绪,关闭传输信道 | |
450 | 要求的邮件操作未完成,邮箱不可用(例如,邮箱忙) | |
550 | 要求的邮件操作未完成,邮箱不可用(例如,邮箱未找到或不可访问) | |
451 | 放弃要求的操作;处理过程中出错 | |
551 | 用户非本地,请尝试<forward-path> | |
452 | 系统存储不足,要求的操作未执行 | |
552 | 过量的存储分配,要求的操作未执行 | |
553 | 邮箱名不可用,要求的操作未执行(例如邮箱格式错误) | |
432 | 需要一个密码转换 | |
534 | 认证机制过于简单 | |
538 | 当前请求的认证机制需要加密 | |
454 | 临时认证失败 | |
530 | 需要认证 | |
正确返回值 | 220 | 服务就绪 |
250 | 要求的邮件操作完成 | |
251 | 用户非本地,将转发向<forward-path> | |
354 | 开始邮件输入,以<CRLF>.<CRLF>结束 | |
221 | 服务关闭传输信道 | |
334 | 服务器响应验证Base64字符串 | |
235 | 验证成功 |