命令HELO是在邮件客户端连接服务器成功以后,
第一个发送到服务器的命令
作用是向SMTP服务器问候
例如客户端向服务器问候,并表明自己的身份。
内容如下
HELO lymlrl<crlf>
其中字符表示结束符号
以上内容表示客户端向服务器问候,
并且表明自己的身份
在vc中向服务器发送该命令
代码如下
...//省略部分代码
char sendmail[]=()"HELO lymlrl\r\n");//构造命令字符串
send(s,sendmmail,sizeof(sendmail),0);//发送命令到服务器
...//省略部分代码
命令MAIL/RCPT分别表示指定邮件的发送和接收者
例如
MAIL from:lymrl@163.com<crlf>
RCPT To:lymlrl@126.com<crlf>
上述分别指定了邮件的发送者和接收者的邮件地址
命令DATA是客户端发送到服务器,
表明客户端将要发送邮件到服务器。
服务器接到该命令后会返回SMTP响应码到客户端
表示服务器已经准备好接收客户端的邮件数据
命令VEFY是被用来验证某个邮件地址的有效性
例如
用户用该命令来验证自己的邮箱地址是否有效
则可以发送命令字符串"VRFY:lymlrl@163.com"到smtp服务器
如果该邮件地址是有效的地址
则服务器会返回响应码250
则表示客户端所请求的操作成功
否则返回450
表示邮件地址无效
命令QUIT表示终止服务器和客户端的会话
例如客户端向服务器发送该命令
代码如下
...//省略部分代码
char sendmail1[]=("QUIT\r\n");//构造命令字符串
send(s,sendmail,sizeof(sendmail),0);//发送命令到服务器
...//省略部分代码
当服务器接收到该命令以后
会返回响应码220到客户端
表示服务器已经关闭相关的数据通道
命令SSEND被用来指定邮件的发送者
在这里发送可以包括邮件的创建者或转发者
邮件的创建者只能为唯一
而转发者可以有多个
例如有一封邮件创建,
被某个用户所转发
该用户的邮件地址是wsds@126.com
那么响应的代码如下
...//省略部分代码
char sendmail[]={"SEND:wsds@126.com\r\n"};//构造命令字符串
send(s,sendmail,sizeof(sendmail),0);//发送命令到服务器
...//省略部分代码
服务器接收到该命令后
会返回响应码250表示成功
注意
命令在程序中被发送时必须加上换行符号
或者用户在构造完成整个邮件内容后
需要在邮件内容后面加上"\0"
表示数据内容发送或者接收完毕