网络 | email
1. STMP
1.1. 简介
STMP(Simple Mail Transfer Protocol)简单邮件传输协议,基于TCP协议之上用来发送邮件的协议,协议以文本格式,所以人直接可读,默认端口25。注意该协议不能读取服务器邮件,如果需要读取服务器邮件请使用POP3或其他电子邮件协议。
传输过程的三个阶段
- 握手
- 消息的传输
- 关闭
命令/响应交互模式
- 命令:ASCII文本
- 响应:状态代码和语句
1.2. 协议演示
以腾讯邮箱演示
1.2.1. 建立连接
telnet smtp.qq.com 25
1.2.2. 交互
S: 服务器,C: 客户端
S: 220 newxmesmtplogicsvrsza8.qq.com XMail Esmtp QQ Mail Server.
C: HELO SMTP
S: 250-newxmesmtplogicsvrsza8.qq.com-9.21.160.46-147022685
S: 250-SIZE 73400320
S: 250 OK
C: AUTH LOGIN
S: 334 VXNlcm5hbWU6
C: 账号Base64
S: 334 UGFzc3dvcmQ6
C: 令牌Base64
S: 235 Authentication successful
C: MAIL FROM:<发送邮箱>
S: 250 OK
C: RCPT TO:<接收邮箱>
S: 250 OK
C: DATA
S: 354 End data with <CR><LF>.<CR><LF>.
C: From: <来源说明>
C: To: <目标说明>
C: Subject: Hello
C:
C: This is test
C: .
S: 250 OK: queued as.
C: QUIT
S: 221 Bye.
2. POP
2.1. 简介
POP(Post Office Protocol)邮件访问协议,从服务器获取邮箱。
模式
- 下载并删除模式:用户如果换了客户端软件,无法重读该邮件
- 下载并保持模式:不同客户端都可以保留消息的拷贝
2.2. 命令
响应
结果 | 简介 |
---|---|
+OK | 成功 |
-ERR | 失败 |
授权阶段
名称 | 功能 |
---|---|
USER | 账号名 |
PASS | 授权code |
事务阶段
名称 | 功能 |
---|---|
LIST | 列出消息数量 |
RETR | 用编号获取消息 |
DELE | 删除消息 |
QUIT | 退出 |
2.3. 协议演示
以腾讯邮箱演示
2.3.1. 建立连接
telnet pop.qq.com 110
2.3.2. 交互
S: 服务器,C: 客户端
S: +OK XMail POP3 Server v1.0 Service Ready(XMail v1.0)
C: USER <账号>
S: +OK
C: PASS <授权code>
S: +OK
C: LIST
S: +OK
S: 1 23320
S: 2 26315
# ...
.
C: RETR 1
S: <邮箱信息>
C: DELE 14
S: +OK
C: QUIT
S: +OK Bye
3. 扩展
通过在邮件头部增加额外的行以声明MIME的内容类型
头 | 说明 |
---|---|
MIME-Version | MIME版本 |
Content-Type | 内容类型 |
Content-Transfer-Encoding | 内容传输编码方式 |
...
MIME-Version: 1.0
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: base64
...