分享
 
 
 

RFC2033 - Local Mail Transfer Protocol

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

Network Working Group J. Myers

Request for Comments: 2033 Carnegie Mellon

Category: Informational October 1996

Local Mail Transfer Protocol

Status of this Memo

This memo provides information for the Internet community. This memo

does not specify an Internet standard of any kind. Distribution of

this memo is unlimited.

1. Abstract

SMTP [SMTP] [HOST-REQ] and its service extensions [ESMTP] provide a

mechanism for transferring mail reliably and efficiently. The design

of the SMTP protocol effectively requires the server to manage a mail

delivery queue.

In some limited circumstances, outside the area of mail exchange

between independent hosts on public networks, it is desirable to

implement a system where a mail receiver does not manage a queue.

This document describes the LMTP protocol for transporting mail into

sUCh systems.

Although LMTP is an alternative protocol to ESMTP, it uses (with a

few changes) the syntax and semantics of ESMTP. This design permits

LMTP to utilize the extensions defined for ESMTP. LMTP should be

used only by specific prior arrangement and configuration, and it

MUST NOT be used on TCP port 25.

Table of Contents

1. Abstract ................................................ 1

2. Conventions Used in this Document ....................... 2

3. Introduction and Overview ............................... 2

4. The LMTP protocol ....................................... 3

4.1. The LHLO, HELO and EHLO commands ........................ 4

4.2. The DATA command ........................................ 4

4.3. The BDAT command ........................................ 5

5. Implementation requirements ............................. 6

6. Acknowledgments ......................................... 6

7. References .............................................. 7

8. Security Considerations ................................. 7

9. Author's Address ........................................ 7

2. Conventions Used in this Document

In examples, "C:" and "S:" indicate lines sent by the client and

server respectively.

3. Introduction and Overview

The design of the SMTP protocol effectively requires the server to

manage a mail delivery queue. This is because a single mail

transaction may specify multiple recipients and the final "." of the

DATA command may return only one reply code, to indicate the status

of the entire transaction. If, for example, a server is given a

transaction for two recipients, delivery to the first succeeds, and

delivery to the second encounters a temporary failure condition,

there is no mechanism to inform the client of the situation. The

server must queue the message and later attempt to deliver it to the

second recipient.

This queuing requirement is beneficial in the situation for which

SMTP was originally designed: store-and-forward relay of mail between

networked hosts. In some limited situations, it is desirable to have

a server which does not manage a queue, instead relying on the client

to perform queue management. As an example, consider a hypothetical

host with a mail system designed as follows:

TCP port 25 +-----------------+

----------------------> #########

Queue <># Mail #

TCP port 25 Manager # Queue #

<---------------------- #########

+-----------------+

Local * ^ Local * Local

IPC * IPC * IPC

* *

* *

* *

V V

Non-SMTP +----------+ +----------+

Protocol Gateway Local #########

<==============> Delivery Delivery >># Mail #

Agent Agent # Spool #

+----------+ +----------+ #########

The host's mail system has three independent, communicating

subsystems. The first is a queue manager, which acts as a

traditional SMTP agent, transferring messages to and from other hosts

over TCP and managing a mail queue in persistent storage. The other

two are agents which handle delivery for addresses in domains for

which the host takes responsibility. One agent performs gatewaying

to and from some other mail system. The other agent delivers the

message into a persistent mail spool.

It would be desirable to use SMTP over a local inter-process

communication channel to transfer messages from the queue manager to

the delivery agents. It would, however, significantly increase the

complexity of the delivery agents to require them to manage their own

mail queues.

The common practice of invoking a delivery agent with the envelope

address(es) as command-line arguments, then having the delivery agent

communicate status with an exit code has three serious problems: the

agent can only return one exit code to be applied to all recipients,

it is difficult to extend the interface to deal with ESMTP extensions

such as DSN [DSN] and ENHANCEDSTATUSCODES [ENHANCEDSTATUSCODES], and

exits performed by system libraries due to temporary conditions

frequently get interpreted as permanent errors.

The LMTP protocol causes the server to return, after the final "." of

the DATA command, one reply for each recipient. Therefore, if the

queue manager is configured to use LMTP instead of SMTP when

transferring messages to the delivery agents, then the delivery

agents may attempt delivery to each recipient after the final "." and

individually report the status for each recipient. Connections which

should use the LMTP protocol are drawn in the diagram above using

asterisks.

Note that it is not beneficial to use the LMTP protocol when

transferring messages to the queue manager, either from the network

or from a delivery agent. The queue manager does implement a mail

queue, so it may store the message and take responsibility for later

delivering it.

4. The LMTP protocol

The LMTP protocol is identical to the SMTP protocol SMTP [SMTP]

[HOST-REQ] with its service extensions [ESMTP], except as modified by

this document.

A "successful" RCPT command is defined as an RCPT command which

returns a Positive Completion reply code.

A "Positive Completion reply code" is defined in Appendix E of STD

10, RFC821 [SMTP] as a reply code which "2" as the first digit.

4.1. The LHLO, HELO and EHLO commands

The HELO and EHLO commands of ESMTP are replaced by the LHLO command.

This permits a misconfiguration where both parties are not using the

same protocol to be detected.

The LHLO command has identical semantics to the EHLO command of ESMTP

[ESMTP].

The HELO and EHLO commands of ESMTP are not present in LMTP. A LMTP

server MUST NOT return a Postive Completion reply code to these

commands. The 500 reply code is recommended.

4.2. The DATA command

In the LMTP protocol, there is one additional restriction placed on

the DATA command, and one change to how replies to the final "." are

sent.

The additional restriction is that when there have been no successful

RCPT commands in the mail transaction, the DATA command MUST fail

with a 503 reply code.

The change is that after the final ".", the server returns one reply

for each previously successful RCPT command in the mail transaction,

in the order that the RCPT commands were issued. Even if there were

multiple successful RCPT commands giving the same forward-path, there

must be one reply for each successful RCPT command.

When one of these replies to the final "." is a Positive Completion

reply, the server is accepting responsibility for delivering or

relying the message to the corresponding recipient. It must take

this responsibility seriously, i.e., it MUST NOT lose the message for

frivolous reasons, e.g., because the host later crashes or because of

a predictable resource shortage.

A multiline reply is still considered a single reply and corresponds

to a single RCPT command.

EXAMPLE:

S: 220 foo.edu LMTP server ready

C: LHLO foo.edu

S: 250-foo.edu

S: 250-PIPELINING

S: 250 SIZE

C: MAIL FROM:<chris@bar.com>

S: 250 OK

C: RCPT TO:<pat@foo.edu>

S: 250 OK

C: RCPT TO:<jones@foo.edu>

S: 550 No such user here

C: RCPT TO:<green@foo.edu>

S: 250 OK

C: DATA

S: 354 Start mail input; end with <CRLF>.<CRLF>

C: Blah blah blah...

C: ...etc. etc. etc.

C: .

S: 250 OK

S: 452 <green@foo.edu> is temporarily over quota

C: QUIT

S: 221 foo.edu closing connection

NOTE: in the above example, the domain names of both the client and

server are identical. This is because in the example the client and

server are different subsystems of the same mail domain.

4.3. The BDAT command

If the server supports the ESMTP CHUNKING extension [BINARYMIME], a

BDAT command containing the LAST parameter returns one reply for each

previously successful RCPT command in the mail transaction, in the

order that the RCPT commands were issued. Even if there were

multiple successful RCPT commands giving the same forward-path, there

must be one reply for each successful RCPT command. If there were no

previously successful RCPT commands in the mail transaction, then the

BDAT LAST command returns zero replies.

When one of these replies to the BDAT LAST command is a Positive

Completion reply, the server is accepting responsibility for

delivering or relaying the message to the corresponding recipient.

It must take this responsibility seriously, i.e., it MUST NOT lose

the message for frivolous reasons, e.g., because the host later

crashes or because of a predictable resource shortage.

A multiline reply is still considered a single reply and corresponds

to a single RCPT command.

The behavior of BDAT commands without the LAST parameter is not

changed; they still return exactly one reply.

5. Implementation requirements

As LMTP is a different protocol than SMTP, it MUST NOT be used on the

TCP service port 25.

A server implementation MUST implement the PIPELINING [PIPELINING]

and ENHANCEDSTATUSCODES [ENHANCEDSTATUSCODES] ESMTP extensions. A

server implementation SHOULD implement the 8BITMIME [8BITMIME]

extension.

Use of LMTP can aggravate the situation described in [DUP-MSGS]. To

avoid this synchronization problem, the following requirements are

made of implementations:

A server implementation which is capable of quickly accepting

responsibility for delivering or relaying a message to multiple

recipients and which is capable of sending any necessary notification

messages SHOULD NOT implement the LMTP protocol.

The LMTP protocol SHOULD NOT be used over wide area networks.

The server SHOULD send each reply as soon as possible. If it is

going to spend a nontrivial amount of time handling delivery for the

next recipient, it SHOULD flush any outgoing LMTP buffer, so the

reply may be quickly received by the client.

The client SHOULD process the replies as they come in, instead of

waiting for all of the replies to arrive before processing any of

them. If the connection closes after replies for some, but not all,

recipients have arrived, the client MUST process the replies that

arrived and treat the rest as temporary failures.

6. Acknowledgments

This work is a refinement of the MULT extension, which was invented

by Jeff Michaud and was used in implementing gateways to the Mail-11

mail system.

Many thanks to Matt Thomas for assisting me in understanding the

semantics of the Mail-11 MULT extension.

7. References

[8BITMIME] Klensin, J., et. al, "SMTP Service Extension for 8bit-MIME

transport", RFC1652, July 1994.

[BINARYMIME] Vaudreuil, G., "SMTP Service Extensions for Transmission

of Large and Binary MIME Messages", RFC1830, August 1995.

[DSN] Moore, K., Vaudreuil, G., "An Extensible Message Format for

Delivery Status Notifications", RFC1894, January 1996.

[DUP-MSGS] Partridge, C., "Duplicate messages and SMTP", RFC1047,

February 1988.

[ENHANCEDSTATUSCODES] Freed, N., "SMTP Service Extension for

Returning Enhanced Error Codes", RFC2034, October 1996.

[ESMTP] Rose, M., Stefferud, E., Crocker, C., Klensin, J., Freed, N.,

"SMTP Service Extensions", RFC1869, November 1995.

[HOST-REQ] Braden, R., "Requirements for Internet hosts - application

and support", STD 3, RFC1123 section 5, October 1989.

[PIPELINING] Freed, N., Cargille, A, "SMTP Service Extension for

Command Pipelining", RFC1854, October 1995.

[SMTP] Postel, J., "Simple Mail Transfer Protocol", STD 10, RFC821,

August 1982.

There are no known security issues with the issues in this memo.

9. Author's Address

John G. Myers

Carnegie-Mellon University

5000 Forbes Ave.

Pittsburgh PA, 15213-3890

EMail: jgm+@cmu.edu

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有