Chinaunix首页 | 论坛 | 博客
  • 博客访问: 148559
  • 博文数量: 52
  • 博客积分: 1447
  • 博客等级: 上尉
  • 技术积分: 505
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-15 15:09
文章分类

全部博文(52)

文章存档

2012年(1)

2011年(51)

分类: LINUX

2011-02-24 14:31:32

  • SMTP的基本命令 
    SMTP定义了14个命令,他们是: 
    HELO 
    MAIL FROM: 
    RCPT TO: 
    DATA 
    RSET 
    SEND FROM: 
    SOML FROM: 
    SAML FROM: 
    VRFY 
    EXPN 
    HELP [ ] 
    NOOP 
    QUIT 
    TURN 
    其中使得SMTP工作的基本的命令有7个,分别为:HELO?MAIL?RCPT?DATA?REST?NOOP和QUIT.介绍请到周详信息。

    RCPT 服务器同意转发
    RCPT --这个命令告诉收件方收件人的邮箱。当有多个收件人时,需要多次使用该命令,每次只能指明一个人。如果接收方服务器不同意转发这个地址的邮件,他必须报550错误代码通知发件方。如果服务器同意转发,他要更改邮件发送路径,把最开始的目的地(该服务器)换成下一个服务器。 
    2. SMTP的基本命令 
    SMTP定义了14个命令,他们是: 
    HELO 
    MAIL FROM: 
    RCPT TO: 
    DATA 
    RSET 
    SEND FROM: 
    SOML FROM: 
    SAML FROM: 
    VRFY 
    EXPN 
    HELP [ ] 
    NOOP 
    QUIT 
    TURN 
    其中使得SMTP工作的基本的命令有7个,分别为:HELO?MAIL?RCPT?DATA?REST?NOOP和QUIT.下面分别介绍如下。

    HELO--发件方问候收件方,后面是发件人的服务器地址或标识。收件方回答OK时标识自己的身份。问候和确认过程表明两台机器能进行通信,同时状态参量被复位,缓冲区被清空。

    MAIL--这个命令用来开始传送邮件,他的后面跟随发件方邮件地址(返回邮件地址)。他也用来当邮件无法送达时,发送失败通知。为确保邮件的成功发送,发件方的地址应是被对方或中间转发方同意接受的。这个命令会清空有关的缓冲区,为新的邮件做准备。

    RCPT --这个命令告诉收件方收件人的邮箱。当有多个收件人时,需要多次使用该命令,每次只能指明一个人。如果接收方服务器不同意转发这个地址的邮件,他必须报550错误代码通知发件方。如果服务器同意转发,他要更改邮件发送路径,把最开始的目的地(该服务器)换成下一个服务器。

    DATA--收件方把该命令之后的数据作为发送的数据。数据被加入数据缓冲区中,以独立一行是"."的行结束数据。结束行对于接收方同时意味即时开始缓冲区内的数据传送,传送结束后清空缓冲区。如果传送接受,接收方回复OK。

    REST--这个命令用来通知收件方复位,所有已存入缓冲区的收件人数据,发件人数据和待传送的数据都必须清除,接收放必须回答OK.

    NOOP--这个命令不影响所有参数,只是需求接收放回答OK, 不会影响缓冲区的数据。

    QUIT--SMTP需求接收放必须回答OK,然后中断传输;在收到这个命令并回答OK前,收件方不得中断连接,即使传输出现错误。发件方在发出这个命令并收到OK答复前,也不得中断连接。

    下面是SMTP答复中用到的代码和含义:

    500 Syntax error, command unrecognized
    500  语法错误,命令无法识别

    [This may include errors such as command line too long] 
    这种错误可能包括命令行太长等

    501 Syntax error in parameters or arguments 
    501 语法错误在参数或论据

    502 Command not implemented 
    502 命令不能执行

    503 Bad sequence of commands 
    503 错误的命令次序
     
    504 Command parameter not implemented 
    504 命令参数不能执行

    211 System status, or system help reply 
    211 系统状态或系统帮助回复
    214 Help message 
    214 帮助信息
    [Information on how to use the receiver or the meaning of a 
    particular non-standard command; this reply is useful only to the human user]

    220 Service ready 
    220 服务准备
    221 Service closing transmission channel 
    221 服务关闭传输频道
    421 Service not available, closing transmission channel 
    421 服务不可用,关闭传输频道
    [This may be a reply to any command if the service knows it must shut down] 
    服务器即将关闭的信息
    250 Requested mail action okay, completed 
    250 被请求的邮件完全准备好
    251 User not local; will forward to
    251 非本地用户,继续解析
    450 Requested mail action not taken: mailbox unavailable 、
    450 
    [E.g., mailbox busy] 
    550 Requested action not taken: mailbox unavailable 
    [E.g., mailbox not found, no access] 
    451 Requested action aborted: error in processing 
    551 User not local; please try 
    452 Requested action not taken: insufficient system storage 
    552 Requested mail action aborted: exceeded storage allocation 
    553 Requested action not taken: mailbox name not allowed 
    [E.g., mailbox syntax incorrect] 
    354 Start mail input; end with . 
    554 Transaction failed 
    最后,让我们看一个RFC821中给出的例子。这封信是Smith在主机Alpha.ARPA 发给主机Beta.ARPA上的 
    Jones,Green和 Brown.并且假定两台主机在同一个网络上。

    S: MAIL FROM: 
    R: 250 OK 
    S: RCPT TO: 
    R: 250 OK 
    S: RCPT TO: 
    R: 550 No such user here 
    S: RCPT TO: 
    R: 250 OK 
    S: DATA 
    R: 354 Start mail input; end with . 
    S: Blah blah blah... 
    S: ...etc. etc. etc. 
    S: . 
    R: 250 OK 
    邮件最后被对方接受。



    #Dovecot是Linux/UNIX类系统平台上的开源IMAP和POP3服务器。
    # 测试是否打开sasl和dovecot认证        
    telnet localhost 25
    ehlo localhost

    250-mail.jj.com
    250-PIPELINING
    250-SIZE 10240000
    250-VRFY
    250-ETRN
    250-STARTTLS   #TLS认证
    250-AUTH LOGIN PLAIN  # SASL 认证
    250-AUTH=LOGIN PLAIN #dovecot sasl认证
    250-ENHANCEDSTATUSCODES
    250-8BITMIME
    250 DSN
    quit #退出





阅读(1583) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~