SMTP协议的基本命令
协议基本原理:一个客户端计算机向服务器发送命令,然后服务器向客户端计算机返回一些信息。
客户端发送的命令以及服务器端的回应都是字符串。
1. 连接成功后,会返回一些描述,描述因服务器而异。
代码220 表示成功连接,服务器等待你的第一个命令。
2. HELO
2.1 该命令包含一个参数,即你的邮箱名
2.2 HELO mytest
2.3 可选命令,服务器不要求该命令的话,可忽略掉。
2.4 命令成功,返回一个代码为250的回应。
3. MAIL FROM mytest@chinadev.net
功能:告诉服务器你想发一封邮件(以发信人的邮件地址为参数)
返回:成功返回一个代码为250的回应。
4. RCPT TO
参数: 以收信人的邮件地址为参数。
RCPT TO somebody@51xbc.com
如果想将邮件发给多个收件人的话,需多次使用RCPT TO命令,
对每个命令,服务器都会返回代码为250的回应。
5. DATA
功能:告诉服务器以下的内容为邮件的正文。
返回:成功则返回代码为354的回应。
就可以发送邮件正文了。
6. 邮件安行发送,每行邮件以一个无回车的换行符结束
Subject: My first e_mail message.
First line of a message.
Second line.
最后一行的最后一个字符是一个小数点。这是正文结束的标志。
服务器收到这个标志后,就会立即向客户端返回一个代码为250的回应以及该邮件的唯一ID号。
250 WAA10568 Message accepted for delivery.
任务完成后,你可继续发送下封邮件,也可以断开同服务器的连接。
7. QUIT
功能: 断开同服务器的连接。
返回: 一个代码为221的回应并断开连接。
221 chinadev.net closing connecdtion.
ESMTP: 扩展的(Extended) SMTP
使用SMTP发信时不需要验证用户帐户,
用ESMTP发信时,服务器会要求用户提供用户名和密码以便身份验证。
VRFY---用于验证给定用户的邮箱是否存在,以及接收关于该用户的详细信息。
EXPN---用于扩充邮件列表。