
邮件协议讲解(SMTP、POP3、IMAP)
邮件收发基本概念
常见邮件协议
发邮件:SMTP(加密版本SMTPS)
收邮件:IMAP(加密版本IMAPS)、POP3(加密版本POP3S)
邮件协议端口号
SMTP: TCP 25
IMAP: TCP 143
POP3: TCP 110
SMTPS: TCP 465
IMAPS: TCP 993
POP3S: TCP 995
IMAP和POP3收邮件的区别
IMAP功能要比POP3的功能更加丰富
IMAP:用户在读取邮件时,直接对服务器上的邮件进行操作,不需要把所有邮件下载到本地在进行各项操作(需要与服务器定时同步)
POP3:客户端软件会将所有未阅读的邮件下载到计算机,并且在邮件服务器上会删除该邮件
邮件收发过程(用户通过邮件客户端进行邮件的收发)
1、用户通过邮件客户端软件将邮件通过SMTP协议发送到发送方的SMTP服务器
2、发送方的SMTP服务器收到用户发来的邮件后,将其存放在邮件缓存列表中(等待时间取决于邮件服务器的性能和要传输的邮件数量),然后发送给接收方的SMTP服务器
3、接收方SMTP服务器收到该邮件后,把邮件放入收件人的用户邮箱中,等待收件人读取
4、收件人通过邮件客户端使用POP3/IMAP协议接收邮件(邮件客户端通过POP3/IMAP协议去通知POP3/IMAP服务器,有POP3/IMAP服务器去用户邮箱中将邮件读取出来,然后发给邮件客户端软件)
目前我们也会通过浏览器来进行邮件的收发,具体过程如下
HTTP/HTTPS协议如何传输邮件?
HTTP/HTTPS本身不适用于发送和接收邮件,但可以通过使用HTTP访问邮件网站,通过API接口来发送和接收邮件
SMTP协议报文
报文类型
客户端请求
HELLO/ELHO 作用都是与服务器确认,通知其客户端使用的机器名称(区别就是ELHO带身份验证,效果更加安全) 服务器对HELLO会直接返回250,对ELHO会返回身份验证
AUTH 客户端使用AUTH与服务器进行登录验证
MAIL FROM 发件人信息(填写与认证信息不同 往往会被定义为垃圾或恶意邮件)
RCPT TO 邮件收信人地址
SUBJECT 邮件基本信息(邮件标题—不填写往往容易被定为垃圾邮件)
DATA 告知服务器要传输邮件的正文内容信息
QUIT 断开连接
SMTP应答返回码
334 请求认证输入
250 响应客户端发来的请求
235 认证通过
221 服务关闭传输通道
220 服务就绪
354 表示开始传送邮件的正文内容信息(往往与data指令结合—当收到SMTP报文携带 .标志时表示结束正文内容信息的传送)
500 指令错误
550 命令无法执行
IMF协议
IMF是一种用于描述电子邮件消息格式的标准,它描述了邮件的各个组成部分(如发件人、收件人、主题、正文等),通常以ASCII编码的文本形式表示(即:IMF定义了文本信息的标准;后面通过MIME多用途互联网邮件扩展类型定义了非ASCII编码文件的形式)
IMF协议和DATA报文之间的关系
SMTP用来发送邮件,IMF定义了邮件的信息格式,DATA携带邮件真正的正文内容
在SMTP协议中,DATA报文用于发送邮件的实际内容,并且DATA报文中携带的二进制数据必须遵循IMF消息的格式要求,以便SMTP服务器能够正确解析和存储邮件
当SMTP客户端与SMTP服务器建立连接后,客户端会发送DATA报文,在DATA发送结束后会发送IMF消息,使得对端能够对DATA报文进行解析
用户通过客户端将邮件发送到SMTP服务器的过程以及相关报文
建立TCP连接
协商认证方式(是否认证、通过什么认证)
进行身份认证
客户端进行邮件基本信息和邮件内容的发送
POP3协议报文
报文类型
客户端发送的命令
User 声明用户名
Pass 声明密码
Quit 终止会话(断开与服务器的连接)
STAT 要求服务器提供信箱大小信息
LIST 要求服务器返回一个信箱中特定邮件的大小信息(或者没有删除标记的所有邮件的大小信息)
RETR 用编号取出相应的邮件消息
TOP 提取前几行
Dele 标记指定的邮件为删除邮件
REST 标记为删除的邮件取消标记
UIDL 取出邮件的唯一标识符
服务器响应
+OK(针对客户端发送的命令携带不同的内容信息)
-ERR
用户通过客户端读取邮件的过程以及相关报文
进行TCP连接
进行身份认证
获取邮件相应的信息
更多推荐



所有评论(0)