Chinaunix首页 | 论坛 | 博客
  • 博客访问: 595373
  • 博文数量: 142
  • 博客积分: 10016
  • 博客等级: 上将
  • 技术积分: 1835
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-10 14:30
个人简介

工作中~

文章分类

全部博文(142)

文章存档

2009年(25)

2008年(117)

我的朋友

分类:

2008-07-22 14:59:11

这是一个相当容易遵守的协议不管是对人或对计算机而言,因为它的设定很人性化,也颇为宽松。SMTP是用来送信的协议,送出邮件的一方称为“客户端”(client) ,接受邮件的一方称为“服务器端” (server)。客户端要传送邮件时,必须主动连接到服务器端,并展开所谓的“ SMTP对话”,对话内容是一系列简单的命令(client->server )与响应(serverc-> lient)以及要传送的信息本身。

认识SMTP协议的最佳方法是实际观察两端之间的对话内容。在你架设好MTA之后(或是你知道哪里有现成的MTA,可以使用telnet亲身体验如何使用协smtp议来送出邮件。下例示范了送出一封邮件的基本步骤:

例:使用Telnet模拟SMTP对话过程                                                     

 

这个例子示范了如何使用SMTP将上例的那封邮件送到mail.example.com服务器上的SMTP server(在此例中,这是一台Postfix server)。如果想自己实验,黑体字就是你要手工键入的部分。一开始,我们使用telnet连接到的mail.example.com的port 25(这是SMTP server的公认哦、通信端口),接着出现下列信息:

这段信息是telnet自己显示出来的,真正的SMTP对话没有这一段。在telnet连接成功后,出现的是SMTP server的响应信息:

  

SMTP server的响应信息有固定格式,一开始必定是三个数字的“响应码”(responsecode)
,接着是一段适合人们解读的简短信息。响应信息代表前次命令的接受状态,对客
户端而言,只有第一个数字有意义。表1整理了各级的响应码与它们对应的意义。

表1  SMTP响应码范围
响应状态码            状态
2xx         请求的动作已成功接受并完成,客户端可以继续下一步。
3xx        命令不接受,因为服务器还需要更多信息。客户端应该以其他命令提供充
            足信息。
4xx        暂时性的失败。若客户端下次尝试同样动作,或许有机会成功。
5xx          永久性的失败。客户端不应该继续尝试同样的动作。

-------------------------------------------------------------------

客户端收到欢迎语之后,接着必须使用HELO命令介绍它自己。HELO命令后面必须是客户端自己的完整主机名称:

    HELO mail.oreilly.com

服务器端响应成功,让客户端可以继续下一步:

   250  mail.oreilly.com

客户端使用MAIL FROM命令表示发信者的邮箱地址:

  MAIL FROM:

服务器端表示接受该地址:

    250 ok

客户端使用RCPT TO命令指出收件人的邮箱地址:

   RCPT TO:

服务器端同意将邮件传递给你指定的收件人:

  250 ok

现在,客户端可以开始送出邮件的内容了。DATA命令让服务器端知道客户端要传送封RFC 2822邮件:

   DATA

服务器端响应它接收到的DATA命令,并提示如何表示邮件结尾:

  354 End data with .

这时候,客户端可以开始传送整封电子邮件。请注意,这里说的是“整封”,包括了标头与正文。在客户端送出完整邮件之后,必须依序送出<CR>. 这五个字符(在画面上看起来,整列只有一个小点),让SMTP server知道整封信已经结束。

服务器表示它已经收到完整邮件:

  250  Ok: queued as 5FA26B3DFE

从这时候开始,由服务器端负责将邮件送到目的地。如果客户端还想要执行其他命令,现在就可以开始了。如果已没有其他邮件要寄到此服务器,则应该使用QUIT命令结束对话:

  QUIT

接着,服务器便会主动切断连接:

  221 Bye

 最后, telnet告诉你连接已经中断,并回到命令行环境:

   Connection closed by foreign host。

 

阅读(2439) | 评论(0) | 转发(0) |
0

上一篇:RFC 2822邮件

下一篇:Postfix常用命令

给主人留下些什么吧!~~