电子邮件是Internet上最广泛的应用之一,尽管网络上有多种邮件收发服务,但最常用的还是SMTP,SMTP就是简单邮件传输协议(Simple Mail Transfer Protocol)。传统的SMTP使用简单的协议传输7位ASCII文本字符,它还有一种扩展形式,称为ESMTP,允许扩展协商,它包括8位的传输。这样,它不仅能够传输二进制的数据,还可以传输非ASCII字符集。一会儿,我们将用SMTP命令模拟发送邮件,但现在让我们先去了解一下SMTP协议的参数吧!
参数 |
作用 |
HELO |
使用标准的SMTP,向服务器标识用户身份。发送者能进行欺骗,但一般情况下服务器都能检测到 |
EHLO |
使用ESMTP,向服务器标识用户身份。发送者能进行欺骗,但一般情况下服务器都能检测到。 |
STARTTLS |
启用TLS |
MAIL FROM |
命令中指定的地址是发件人地址 |
RCPT TO |
标识单个的邮件接收人;可有多个 RCPT TO;常在 MAIL 命令后面 |
DATA |
在单个或多个 RCPT 命令后,表示所有的邮件接收人已标识,并初始化数据传输,以CRLF.CRLF 结束 |
VRFY |
用于验证指定的用户/邮箱是否存在;由于安全方面的原因,服务器常禁止此命令 |
EXPN |
验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用 |
HELP |
查询服务器支持什么命令 |
NOOP |
无操作,服务器响应 250 OK |
RSET |
重置会话,当前传输被取消,服务器响应 250 OK |
QUIT |
结束会话 |
以上参数为常用参数,明白它们的作用,现在我们来做一个实例吧!让我们利用SMTP命令,先向邮件服务器发送一封电子邮件。Internet上有些邮件服务器都支持这种方法去模拟身份发邮件呀,大家可以试一试。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
1.首先我们TELNET上邮件服务器

2.然后输入以下命令

3. 验证邮件是否收到

转载于:https://blog.51cto.com/hanmei/143871