您的位置:首页 > 编程语言 > PHP开发

SMTP命令与ESMTP命令简介(附带命令通信)

2014-03-25 09:28 260 查看
什么是 SMTP

SMTP (Simple Mail Transfer Protocol) : 电子邮件从客户机传输到服务器或从某一个服务器传输到另一个服务器使用的传输协议。 SMTP 是请求/响应协议,命令和响应都是基于 ASCII 文本,并以 CR 和 LF 符结束。响应包括一个表示返回状态的三位数字代码。SMTP 在 TCP 协议 25 端口监听连接请求。

什么是 ESMTP

ESMTP (Extended SMTP),顾名思义,扩展 SMTP 就是对标准 SMTP 协议进行的扩展。它与 SMTP 服务的区别仅仅是,使用 SMTP 发信不需要验证用户帐户,而用 ESMTP 发信时, 服务器会要求用户提供用户名和密码以便验证身份。验证之后的邮件发送过程与 SMTP 方式没有两样。

SMTP 命令

SMTP 命令包括:

HELO 向服务器标识用户身份。发送者能欺骗,说谎,但一般情况下服务器都能检测到。

EHLO 向服务器标识用户身份。发送者能欺骗,说谎,但一般情况下服务器都能检测到。

MAIL FROM 命令中指定的地址是发件人地址

RCPT TO 标识单个的邮件接收人;可有多个 RCPT TO;常在 MAIL 命令后面。

DATA 在单个或多个 RCPT 命令后,表示所有的邮件接收人已标识,并初始化数据传输,以 CRLF.CRLF 结束

VRFY 用于验证指定的用户/邮箱是否存在;由于安全方面的原因,服务器常禁止此命令

EXPN 验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用

HELP 查询服务器支持什么命令

NOOP 无操作,服务器应响应 OK

RSET 重置会话,当前传输被取消

QUIT 结束会话

连接 Winmail Server 使用 SMTP 命令发送邮件

例如:安装 Winmail 的邮件服务器IP是192.168.10.21 (蓝色字体内容由客户端输入,红色字体内容是服务返回的

telnet 192.168.10.21 25 --------------------- 使用 telnet 命令连接服务器 25 端口

Trying 192.168.10.21... ---------------------- 正在连接服务器 25 端口

Connected to 192.168.10.21. -------------- 连接服务器 25 端口成功

220 Winmail Mail Server ESMTP ready - 显示服务器的标识名称 (Winmail 管理工具->高级设置->系统参数->基本参数中可更改)

helo domain.com ----------------- (必须带上域名)向服务器标识用户身份,发信不要认证,跳过下面几步直接发送 mail from
命令

250 Winmail Mail Server

ehlo domain.com ----------------- (必须带上域名)ESMTP 命令,发信需要认证。(也可以直接跳过HELO,用HELO命令表明身份后,跳到MAIL
FROM....)


250-Winmail Mail Server

250-PIPELINING

250-AUTH=LOGIN PLAIN

250-AUTH LOGIN PLAIN

250-SIZE 20480000

250 8BITMIME

auth login --------------------------- 进行用户身份认证

334 VXNlcm5hbWU6

Y29zdGFAYW1heGl0Lm5ldA== -- BASE64 加密后的用户名

334 UGFzc3dvcmQ6

MTk4MjIxNA== --------------------- BASE64 加密后的密码

235 auth successfully ------------- 身份认证成功

(535 auth failure ------------------- 身份认证失败)

发到本系统中域名下的账户可跳过身份认证。(上篇文章讲过,关闭中继功能,就是服务器只接受发到特定邮件域或从特定IP地址发来的邮件,此时还不需认证)

mail from: <test1@domain.com> ------- mail from 地址 test1@domain.com

250 ok --------------------------------------- 命令执行成功

rcpt to: <test2@domain.com> ---------- 递送给地址 test2@domain.com

250 ok --------------------------------------- 命令执行成功

data ------------------------------------------ 数据传输初始化

354 go ahead ------------------------------ 开始传输数据

From: test1@domain.com

To: test2@domain.com

Date: Mon, 25 Oct 2004 14:24:27 +0800

Subject: test mail

Hi, test2

This is a test mail, you don't reply it.

.

------------------------------------------------------------ 数据内容,包括BASE64加密后的邮件内容, 以 CRLF.CRLF 结束数据传输

250 ok message accepted for delivery ------------ 命令执行成功

quit ------------------------------------------------------- 结束会话

221 Winmail Mail Server

Connection closed by foreign host .---------------- 断开连接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: