SMTP POP3协议整理

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

邮件协议整理

写在前面

最开始的邮件传输是根据SMTP实现的,但由于历史原因,Internet上的很多网关不能正确传输8 bit内码的字符,比如汉字等。所以出现了对邮件内容编码的需要。这样,在邮件协议中除了smtp、pop外,又增加了与编码相关的MIME。

概括地说,smtp、pop与邮件的接收、发送过程相关,这两者负责邮件的传输;而MIME 与邮件内容(这里,邮件内容包括发件人信息、收件人/抄送人信息、邮件正文、附件)相关,约定了被传输邮件的格式。可以这样理解,smtp、pop完成了邮差的工作,mime解决了信件(包括信封)格式的问题。没有mime之前,邮差只能给美国人送邮件;有了mime 之后,邮差可以提供国际快递业务了。

1.Smtp

SMTP(Simple Mail Transfer Protocol):简单邮件传输协议,是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。

关于SMTP的详细介绍参考rfc821,/html/rfc821

Rfc2821,/html/rfc2821

验证过程

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

<:334 VXNlcm5hbWU6 ---BASE64编码“Username:”

>:Y29zdGFAYW1heGl0Lm5ldA== ----发送BASE64编码的用户名

<:334 UGFzc3dvcmQ6 ---BASE64编码"Password:"

>:MTk4MjIxNA== ---客户端发送BASE64编码的密码

<:235 auth successfully ---成功

客户端命令:

HELO/EHLO 向服务器发出请求

AUTH LOGIN 用户身份认证

MAIL FROM: 发件人信息,

RCPT TO: 收件人信息,告诉服务器邮件发送给谁,

可重复多次,发送给多个收件人

DA TA 邮件内容

QUIT 本次请求结束

服务器返回值:

220 Service ready

221 Service closing transmission channel

250 Requested mail action okay, completed

354 Start mail input; end with . 对data命令的应答

其它参考【rfc821】、【rfc2821】

示例:

R: 220 USC-ISI.ARPA Simple Mail Transfer Service Ready

S: HELO LBL-UNIX.ARPA

R: 250 USC-ISI.ARPA

S: MAIL FROM:

R: 250 OK

S: RCPT TO:

R: OK

S: DA TA

R: 354 Start mail input; end with .

S: Blah blah blah...

S: ...etc. etc. etc.

S: .

R: 250 OK

S: QUIT

R: 221 USC-ISI.ARPA Service closing transmission channel

【注意】DA TA命令之后,若邮件服务器返回354状态值表示开始接收数据;用户开始发送数据,邮件数据连续发送,并以.结束。因为后面采用对邮件内容采用了mime编码的原因,data数据中不会出现.字段与上面的结束符冲突。

The mail data may contain any of the 128 ASCII character codes, although experience has indicated that use of control characters other than SP, HT, CR, and LF may cause problems and SHOULD be avoided when possible.

2.pop

POP的全称是Post Office Protocol,即邮局协议,用于电子邮件的接收,它使用TCP 的110端口。

参考rfc1939,/html/rfc1939

常用命令

大部分邮件服务器使用明文的用户名、密码进行认证。

命令参数状态描述

------------------------------------------

USER username 认证此命令与下面的pass命令若成功,将导致状态转换

PASS password 认证

APOP Name,Digest 认证Digest是MD5消息摘要

------------------------------------------

STA T None 处理请求服务器发回关于邮箱的统计资料,如邮件总数和总字节

UIDL [Msg#] 处理返回邮件的唯一标识符,POP3会话的每个标识符都将是唯

一的

LIST [Msg#] 处理返回邮件数量和每个邮件的大小

RETR [Msg#] 处理返回由参数标识的邮件的全部文本

DELE [Msg#] 处理服务器将由参数标识的邮件标记为删除,由quit命令执行RSET None 处理服务器将重置所有标记为删除的邮件,用于撤消DELE命

TOP [Msg#] 处理服务器将返回由参数标识的邮件前n行内容,n必须是正整

NOOP None 处理服务器返回一个肯定的响应

------------------------------------------

QUIT None 更新

【注意】任何邮件的删除都必须在quit命令发出后对已标记为删除的邮件执行删除操作,若发生访问中断,没有发出quit命令,那么虽然执行过dele命令,邮件仍不会被删除。

在客户端发出RETR 305命令后,服务器立即返回数据,数据可分在几个包中连续发送。邮件内容用.结束。

如下:

+OK 2281 octets

Received: from ([209.85.222.178])

by (Lotus Domino Release 6.5.3)

with ESMTP id 2009063010503284-48548 ;

Tue, 30 Jun 2009 10:50:32 +0800

相关文档
最新文档