summaryrefslogtreecommitdiff
path: root/old/delivery.txt
blob: e991f81617b463662c9d076dbe48e421f536f201 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
                 Internet Mail Delivery Protocol

The objective of Internet Mail Delivery Protocol (IMDP) is to deliver
mail between mail servers reliably, securely and efficiently.  This
document is an informal specification of IMDP.

IMDP is the mail delivery protocol of the Internet Mail Architecture,
which addresses the communication of mail between mail servers.  It is
not complete by itself.  Seperate protocols are being developed to
address mail submission, and mail retrieval between user agents and mail
servers.  The format of mail data transferred with IMDP is also
documented seperately.

The Internet long had existing mail delivery protocols, such as the
Simple Mail Transfer Protocol.  However, due to the lack of security
considerations, countless amendments have been added to the protocol
such as SMTP over TLS, DMARC, DKIM, and SPF.  In particular, TLS is used
for secure transport, while DMARC, DKIM, and SPF are used for domain
name authentication.  However, this combination is complicated and is
cumbersome to maintain, especially with its heavy dependence on DNS.
This protocol attempts to address these coherently.

The Internet Mail Delivery Protocol works over TLS TCP.  At the request
of a user, the sending IMDP server server establishes a TLS bytestream
to the receiving IMDP server, based on the hostpart of the recipients of
the mail.  The TLS connection MUST use a TLS client certificate,
recognized in the X.509 public key infrastructure (e.g. signed by a
certificate authority), that corresponds to the domain of the return
path, as in the return path's hostpart is in the TLS client
certificate's commonName or subjectAltName.  The sending-IMDP then sends
a IMDP mail data's headers, in the IMDP mail format.  The receiving-IMDP
verifies the validity of the mail headers, for example, whether the
sending-IMDP is authorized to send mail for the domain indicated in the
headers.  If the receiving-IMDP can receive the mail as specified by the
headers, the sending-IMDP sends the mail data.  If not, the
receiving-IMDP rejects the mail with a reply specifying the reason.

vim: textwidth=72 colorcolumn=72