2024年6月12日发(作者:)
邮件协议整理
写在前面
最开始的邮件传输是根据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:
DATA
向服务器发出请求
用户身份认证
发件人信息,
收件人信息,告诉服务器邮件发送给谁,
可重复多次,发送给多个收件人
邮件内容
本次请求结束 QUIT
服务器返回值:
220
221
250 Requested mail action okay, completed
354 Start mail input; end with
其它参考【rfc821】、【rfc2821】
示例:
对data命令的应答
R: 220 Simple Mail Transfer Service Ready
S: HELO
R: 250
S: MAIL FROM:
R: 250 OK
S: RCPT TO:
R: OK
S: DATA
R: 354 Start mail input; end with
S: Blah
S: ...etc. etc. etc.
S: .
R: 250 OK
S: QUIT
R: 221 Service closing transmission channel
【注意】 DATA命令之后,若邮件服务器返回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 认证
发布评论