服务器 频道

邮件服务常用SMTP、POP3、MIME等协议

    【IT168 服务器学院】电子邮件因简洁、方便,已成为目前互联网最成功的一种应用。互联网上有成千上万的邮件服务器为用户提供服务。每个服务器上有几十至几百万个或更多的用户邮箱,用户通过用户代理(如FoxMail、MS Express)收发邮件,邮件内容除通常的文字信息外,还可附加图象、音频、视频等信息。保证邮件交换正常使用的是SMTP、POP3、MIME等协议。在邮件服务器上,一般使用文件系统来存储用户邮件。发送的服务器和接收的邮件服务器可以不是同一台。同一域的邮件服务器可采用分布式结构组成服务器群。邮件服务器还可定义邮箱别名进行转发。  

    1.SMTP(简单邮件传输协议)

    1982年制定了SMTP(RFC 821)和邮件报文格式RFC 822。SMTP描述了两个进程之间如何交换信息,邮件报文格式规定了邮件的具体格式。

    邮件由首部和主体构成,主体部分是邮件的内容,首部由关键字、冒号及关键信息组成,典型首部如下:

    Date:

    From: a@b.c.d

    To:abc@def.ghi.jkl; 123@456.789

    Subject: abcdefg

    CC: aa@bb.cc.dd

    BCC: 1@2.3.4

    Reply-To:

    用SMTP收发邮件的过程为:建立TCP连接(服务端口号25),传送邮件,释放连接。

    传送邮件的命令:

    如果DATA命令被接收,接收方返回一个354 Intermediate应答,并认定以下的各行都是信件内容。当信件结尾收到并存储后,接收者发送一个250 OK应答。因为邮件是在传送通道上发送,因此必须指明邮件内容结尾,以便应答对话可以重新开始。SMTP通过在最后一行仅发送一个句号来表示邮件内容的结束,在接收方,一个对用户透明的过程将此符号过滤掉,以不影响正常的数据。

    HELO

    MAIL FROM:

    RCPT TO:

    DATA

    RSET

    SEND FROM:

    SOML FROM:

    SAML FROM:

    VRFY

    EXPN

    HELP [ ]

    NOOP

    QUIT

    TURN

    传送邮件的应答:

    500 格式错误,命令不可识别(此错误也包括命令行过长)

    501 参数格式错误

    502 命令不可实现

    503 错误的命令序列

    504 命令参数不可实现

    211 系统状态或系统帮助响应

    214 帮助信息

    220 服务就绪

    221 服务关闭传输信道

    421 服务未就绪,关闭传输信道(当必须关闭时,此应答可以作为对任何命令的响应)

    250 要求的邮件操作完成

     251 用户非本地,将转发向

    450 要求的邮件操作未完成,邮箱不可用(例如,邮箱忙)

    550 要求的邮件操作未完成,邮箱不可用(例如,邮箱未找到,或不可访问)

    451 放弃要求的操作;处理过程中出错

    551 用户非本地,请尝试

    452 系统存储不足,要求的操作未执行

    552 过量的存储分配,要求的操作未执行

    553 邮箱名不可用,要求的操作未执行(例如邮箱格式错误)

    354 开始邮件输入,以.结束

    554 操作失败

    例子:

    R: 220 BBN-UNIX.ARPA Simple Mail Transfer Service Ready

    S: HELO USC-ISIF.ARPA

    R: 250 BBN-UNIX.ARPA

    S: MAIL FROM:<Smith@USC-ISIF.ARPA>

    R: 250 OK

    S: RCPT TO:<Jones@BBN-UNIX.ARPA>

    R: 250 OK

    S: RCPT TO:<Green@BBN-UNIX.ARPA>

    R: 550 No such user here

    S: RCPT TO:<Brown@BBN-UNIX.ARPA>

    R: 250 OK

    S: DATA

    R: 354 Start mail input; end with .

    S: Blah blah blah...

    S: ...etc. etc. etc.

    S: .

    R: 250 OK

    S: QUIT

    R: 221 BBN-UNIX.ARPA Service closing transmission channel

    2.POP3(邮局协议)

    1984年制定了POP(RFC 918),以后完善为POP3(RFC 1939)。用取邮件的过程为:建立TCP连接(服务端口号110),取邮件,释放连接。命令与应答类似于SMTP。见下表:

    命令格式

    参数

    响应

    USER name

    指定邮箱的字符串,这对服务器至关重要

    +OK:有效邮箱;

    -ERR:无效邮箱

    PASS string

    口令

    +OK:邮件锁住并已经准备好;

    -ERR无效口令或无法锁住邮件

    (因为此命令只有一个参数,因此空格不再作为分隔符,而作为口令的一部分)

    STAT

    (无)

    “确认”响应,空格,以八进制表示的邮件数目,空格和邮件大小。

    LIST [msg]

    信件数目(可选),如果出现,不包括标记为删除的信件。

    如果给出了参数,且POP3服务器返回包括上述信息的“确认”,此行称为信息的“扫描表”。

    如果没有参数,服务器返回“确认”响应,此响应便以多行给出。在初始的+OK后,对于每个信件,服务器均给出相应的响应。

    RETR msg

    如果服务器返回“确认”,给出的响应是多行的。在初始的+OK后,服务器发送与给定信息号对应的信息,对于多行响应,注意字节填充终止符。

    DELE msg

    服务器将此信件标记为删除,以后任何关于此信件的操作就会产生错误。

    NOOP

    (无)

    服务器仅返回“确认”。

    RSET

    (无)

    所有被标记为删除的信件复位,服务器返回“确认”。

    QUIT

    (无)

    服务器删除所有标记为删除的信件,然后释放排它锁,并返回这些操作的状态码。最后TCP连接被中断。

    TOP msg n

    一个是未被标记为删除的信件数,另一个是非负数(必须提供)

    如果服务器返回“确认”,响应是多行的。在初始的+OK后,服务器发送信件头,一个空行将信件头和信件体分开,对于多行响应要注意字节填充终止符。

    注意:如果客户要求的行数比信件体中的行数大,服务器会发送整个信件。

    UIDL [msg]

    信件数(可选)。

    如果给出了参数,且POP3服务器返回包括上述信息的“确认”,此行称为信息的“独立-ID表”。

    如果没有参数,服务器返回“确认”响应,此响应便以多行给出。在初的+OK后,对于每个信件,服务器均给出相应的响应。

    APOP name digest

    指定邮箱的字串和MD5算法生成的密码串。

    USER/PASS存在泄密的可能性。

    实现APOP命令的服务器包括一个标记确认的时间戳。例如:在UNIX上使用APOP命令的语法为:process-ID.clock@hostname,其中进程-ID是进程的十进制的数,时钟是系统时钟的十进制表示,主机名与POP3服务器名一致。客户记录下此时间戳,然后以送APOP命令。

    例子:

    S: <等待连接到TCP端口110>

    C: <打开连接>

    S: +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>

    C: APOP mrose c4c9334bac560ecc979e58001b3e22fb

    S: +OK mrose''s maildrop has 2 messages (320 octets)

    C: STAT

    S: +OK 2 320

    C: LIST

    S: +OK 2 messages (320 octets)

    S: 1 120

    S: 2 200

    S: .

    C: RETR 1

    S: +OK 120 octets

    S: <服务器发送信件1>

    S: .

    C: DELE 1

    S: +OK message 1 deleted

    C: RETR 2

    S: +OK 200 octets

    S: <服务器发送信件2>

    S: .

    C: DELE 2

    S: +OK message 2 deleted

    C: QUIT

    S: +OK dewey POP3 server signing off (maildrop empty)

    C: <关闭连接>

0
相关文章