因特网电子邮件有三个主要组成部分
- 用户代理(用的什么客户端发送的邮件)
- 邮件服务器(邮件远程传输,在邮件服务器之间传输)
- 简单邮件传输协议(协议)
发送邮件的大概流程
- 邮件通过客户端传输到邮件服务器
- 通过跨邮件服务器之间传输使用SMTP协议进行传输。
- 当收件方的客户上线之后,会与服务器相连接,将邮件传输到客户端
SMTP报文
图片来源:https://blog.youkuaiyun.com/qq_35644234/article/details/68961603
报文
- 首先,需要先与目的邮件服务器建立连接HELO
- 写入发送邮件的地址,MAIL FROM
- 写入接收邮件的地址,RCPT TO
- 发送的数据,DATA
- 结束标志,QUIT
注意结束符号有两个 .和QUIT
区别:
- .:表示每个报文的结束符号:编码CRLF.CRLF,也就是一行单独只有一个.
- QUIT:表示所有报文全部发送完成使用QUIT
与HTTP报文对比
- http主要是拉协议,通常是从服务器中获取数据,SMTP主要是推协议,上传数据到服务器
- SMTP要求每个报文采用7位ASCII码格式。HTTP不受这种限制
- HTTP把每个对象封装到它自己的HTTP报文中,而SMTP把所有报文对象放在一个报文之中