SMTP 指令简介
啥是 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.0.1 (蓝色字体内容由客户端输入,红色字体内容是效力回来的)
telnet 192.168.0.1 25 --------------------------------------- 运用 telnet 指令联接效力器 25 端口
Trying 192.168.0.1... --------------------------------------- 正在联接效力器 25 端口
Connected to 192.168.0.1. ----------------------------------- 联接效力器 25 端口成功
220 Winmail Mail Server ESMTP ready ------------------------- 显示效力器的标识名称 (Winmail 管理工具->高档设置->体系参数->基本参数中可更改)
helo cnu.com ------------------------------------------------ 向效力器标识用户身份,发信不要认证,跳过下面几步直接发送 mail from 指令
250 Winmail Mail Server
ehlo cnu.com ------------------------------------------------ ESMTP 指令,发信需要认证。
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 ------------------------------------------ 身份认证失利)
发到本体系中域名下的账户可跳过身份认证。
mail from: <test1@email-cm.com> ------------------------------ mail from 地址 test1@email-cm.com
250 ok ----------------------------------------------------- 指令执行成功
rcpt to: <test2@email-cm.com> -------------------------------- 递送给地址 test2@email-cm.com
250 ok ----------------------------------------------------- 指令执行成功
data ------------------------------------------------------- 数据传输初始化
354 go ahead ----------------------------------------------- 开始传输数据
From: test1@email-cm.com
To: test2@email-cm.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 .------------------------- 断开联接
POP3 指令简介
啥是 POP3
POP3 (Post Office Protocol 3) 即邮局协议的第 3 个版别,它规则怎样将个人计算机联接到 Internet 的邮件效力器和下载电子邮件的电子协议。它是因特网电子邮件的 第一个离线协议标准, POP3 允许用户从效力器上把邮件存储到本地主机(即个人的计算机)上,一起删去保存在邮件效力器上的邮件,而POP3效力器则是遵从 POP3 协议的接纳邮件效力器,用来接纳电子邮件的。
POP3 指令
POP3 指令包括:
USER username 认证用户名
PASS password 认证暗码认证,认证通过则状态转换
APOP name,digest 认可一种安全传输口令的办法,执行成功导致状态转换,请参见 RFC 1321 。
STAT 处置恳求 server 回送邮箱统计资料,如邮件数、 邮件总字节数
UIDL n 处置 server 回来用于该指定邮件的唯一标识, 若是没有指定,回来一切的。
LIST n 处置 server 回来指定邮件的巨细等
RETR n 处置 server 回来邮件的全部文本
DELE n 处置 server 标记删去,QUIT 指令执行时才真实删去
RSET 处置吊销一切的 DELE 指令
TOP n,m 处置 回来 n 号邮件的前 m 行内容,m 必须是自然数
NOOP 处置 server 回来一个肯定的响应
QUIT 希望结束会话。若是 server 处于"处置" 状态,则现在进入"更新"状态,删去那些标记成删去的邮件。若是 server 处于"认可"状态,则结束会话时 server 不进入"更新"状态 。
运用 telnet 联接 Winmail Server 收信
例如:装置 Winmail 的邮件效力器 IP 是 192.168.0.1(蓝色字体内容由客户端输入,红色字体内容是效力回来的)
telnet 119.119.119.212 110 ----------------------------- 运用 telnet 指令联接效力器 110 端口
Trying 119.119.119.212... ------------------------------ 正在联接效力器 110 端口
Connected to 119.119.119.212. -------------------------- 联接效力器 110 端口成功
+OK Winmail Mail Server POP3 ready
user username ------------------------------------------ 输入用户名, username 为具体的用户名
+OK ---------------------------------------------------- 执行指令成功
pass password ------------------------------------------ 输入用户暗码,password 为具体的暗码
+OK 2 messages ----------------------------------------- 暗码认证通过
(-ERR authorization failed ----------------------------- 暗码认证失利)
stat --------------------------------------------------- 邮箱状态
+OK 2 6415 --------------------------------------------- 2 为该信箱总邮件数,6415 为总字节数
list --------------------------------------------------- 列出每封邮件的字节数
+OK ---------------------------------------------------- 执行指令成功,开始显示,左边为邮件的序号,右边为该邮件的巨细
1 537 -------------------------------------------------- 第 1 封邮件,巨细为 537 字节
2 5878 ------------------------------------------------- 第 2 封邮件,巨细为 5878 字节
.
top 1 -------------------------------------------------- 接纳第 1 封邮件
+OK ---------------------------------------------------- 接纳成功, 回来第 1 封邮件头
Return-Path: <test1@email-cm.com>
Delivered-To: test2@email-cm.com
Received: (winmail server invoked for smtp delivery); Mon, 25 Oct 2004 14:24:27 +0800
From: test1@email-cm.com
To: test2@email-cm.com
Date: Mon, 25 Oct 2004 14:24:27 +0800
Subject: test mail
.
retr 1 ------------------------------------------------- 接纳第 1 封邮件
+OK ---------------------------------------------------- 接纳成功, 回来第 1 封邮件全部内容
Return-Path: <test1@email-cm.com>
Delivered-To: test2@email-cm.com
Received: (winmail server invoked for smtp delivery); Mon, 25 Oct 2004 14:24:27 +0800
From: test1@email-cm.com
To: test2@email-cm.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.
.
dele 1 ------------------------------------------------- 删去第 1 封邮件
+OK ---------------------------------------------------- 删去成功
dele 2 ------------------------------------------------- 删去第 2 封邮件
+OK ---------------------------------------------------- 删去成功
quit --------------------------------------------------- 结束会话
+OK ---------------------------------------------------- 执行指令成功
原文转自海外邮件中继转发