SMTP协议是工作在两种情况下:
- 电子邮件从客户机传输到服务器(发信);
- 从某一个服务器传输到另一个(转发)。
SMTP工作流程:
- SMTP客户端和SMTP服务器建立TCP连接,客户端发起连接请求。
- 连接建立后,服务器向客户发送响应报文,其应答码为220,表示服务准备就绪。
- 客户端收到响应报文后,发送HELO命令,启动客户端和服务器直间的SMTP会话。
- 服务器发送响应报文,其应答码是250,通知客户端:请求建立的邮件服务会话已经实现。
- 服务器发送应答码334,等待用户输入验证信息;用户输入验证信息后,服务器发送应答码235,表示用户验证成功。
- 客户端通过mail from向服务器发送发信人的邮箱和域名。
- 服务器响应应答码250,表示请求命令完成。
- 客户端通过rept to命令向服务器发送收件人的邮箱和域名。
- 服务器响应应答码250,表示请求命令完成。
- 服务器通过data命令对报文的传送进行初始化。
- 服务器响应应答码354,表示可以进行邮件传输。
- 客户端向服务器传送数据。
- 传输完成,服务器响应应答码250,表示请求命令完成。
- 客户端发送QUIT命令,终止连接。
- 服务器响应应答码221,表示SMTP服务关闭,结束会话。
- 客户端和服务器关闭TCP连接。