邮件传送协议SMTP

SMTP协议规定在连个互相通信的SMTP进程之间如何交换信息。协议使用14条命令和21中应答信息。每条命令由4个字母组成,每一种应答由3位数字的代码开始,一般只有一行信息。下面通过邮件服务器之间SMTP通信的过程简要介绍几个命令和相应消息。

 (1)建立连接。发送端邮件服务器发送邮件的时候,使用SMTP的周知端口(25)与接收方邮件服务器的SMTP进程简历TCP连接。连接简历后,接收方会发出“200 Service ready” (服务器就绪)的信息。客户端向服务器发送HELLO命令,服务器若能接收邮件,则回应“2501 OK ” 的信息,表示已经准备好接收。

   不管发送方和接收方的邮件服务器距离多远,TCP服务器总是在这两者之间建立连接。如果接收方邮件服务器出现故障,发送方邮件服务器只能等待一段时间后再次尝试建立连接,而不能先找一个其他的邮件服务器建立连接。

  (2)邮件传输。邮件传输使用MAIL命令,如果SMTP服务器已经就绪,则回答“2501 OK” 消息。接着使用RCPT 命令,把邮件发送给一个人或多个人。没发送一个RCPT 命令,都应当能收到从服务器返回的确认消息,表明指定的邮箱在接受方的系统中。RCPT命令的左右就是先确定对方已经准备接收邮件,载开始发送。

      然后使用DATA命令,发送邮件的内容。发送完成后再发送<CRLF> 。<CRLF> 表示邮件内容发送结束,对方的邮件服务器收到后返回确认信息,如果出错则返回错误代码。

 (3)连接释放。邮件发送完成后,客户端发送 QUIT命令,服务器返回“211” 的信息,表示同意释放TCP 连接,邮件的传输过程即结束。

    SMTP使用可靠传输的TCP 协议试图达到邮件的可靠传输,但是也不能保证不丢失邮件。SMTP传输邮件只能保证可靠地交付到接收方的邮件服务器中,然后接收方从服务器读取邮件的过程和对方的邮件服务器都有可能出现故障而造成邮件的丢失。虽然存在这些情况,但是基于SMTP的邮件传输协议一般认为是可靠的。

 

上一篇:java静态代理代码举例


下一篇:2021-04-13-Java如何操作RabbitMQ