Электронная почта позволяет обмениваться сообщениями
стандартного формата, в просторечии называемыми письмами. Сообщение
состоит из конверта, заголовка и тела.
Формат конверта определяется транспортным протоколом
и хранит адресную информацию,
необходимую для отправки и передачи сообщения получателю (может создаваться
на основе полей заголовка). Адресная информация в заголовке письма
(поля From: и To:) не используется для доставки. Тело письма
может состоять из текстовых строк (кодировка US-ASCII, 7 бит) или кодироваться
в соответствии со стандартом MIME.
Архитектуру почтовой системы легче всего проследить на
примере отправки и доставки гипотетического письма отправителем получателю.
Отправитель письма использует для его составления MUA (Mail User Agent).
Задача MUA состоит в том, чтобы помочь отправителю заполнить поля
заголовка. При этом особым образом обрабатываются случаи ответа на письмо
(reply), пересылки письма (forwarding) и перепосылки (resending).
MUA, поддерживающий стандарт MIME, позволяет использовать символы,
отличные от US-ASCII, включать файлы, шифровать сообщения и т.д.
Типичными MUA являются Outlook Express, Netscape (mozilla),
PINE, mail, mailx и т.д.. Простейшей реализацией MUA можно
считать команду telnet имя-сервера-получателя 25 ;)
Составленное письмо MUA должен доставить получателю
(получателям). Сообразительный MUA может определить адрес почтового сервера
получателя по полям заголовка To:, Cc: и Bcc:, однако почтовый сервер
получателя может отказаться принимать почту от "чужого" пользователя,
поэтому правильнее отправить письмо для дальнейшей обработки "своему"
почтовому серверу (в просторечии называемому MTA - Mail Transport Agent).
При общении MUA и MTA в настоящее время используется
протокол SMTP (ESMTP) из семейства TCP/IP.
В прошлом, большой популярностью пользовался также протокол
UUCP (uux). Если MUA и MTA работают
на одном компьютере, то могут использоваться локальные механизмы передачи
(rmail, sendmail -oi -t).
Задачами MTA являются: прием сообщений от MUA и других
MTA; определение маршрута дальнейшего продвижения сообщения;
возможное преобразование заголовка письма, в зависимости от
возможностей транспортного протокола и контрагента; помещение письма в
очередь, если его не удается отправить немедленно и обслуживание очереди;
обработка ошибок, генерация сообщений об ошибках (DSN) и их посылка отправителю.
Типичными представителями MTA являются sendmail
(и версия sendmail для Solaris),
qmail (www.qmail.org, www.ru.qmail.org:8100; версия 1.03 - что-то давно не менялся;
почему-то на нем делают исходящую почту - yahoo, hotmail, usa.net),
postfix (www.postfix.org, 1.1p14 - март 2002),
exim,
smail (последняя виденная мной версия 3.2.0.111 датирована 1998 годом),
CommuniGate.
При определении маршрута, в частности, вычисляется агент дальнейшего
продвижения (delivery agent) и его параметры. Типичными агентами являются:
программа, раскладывающая письма в локальные почтовые ящики;
пересылка письма другому MTA с использованием протокола SMTP или UUCP;
шлюз в Usenet или FIDO; отправка письма в почтовые ящики сервера POP3/IMAP;
автоматическая обработка письма (procmail и т.п.). Агенты не входят
в состав MTA, так что фантазия авторов агентов ничем не ограничена.
После долгого путешествия письмо попадает либо
в локальный почтовый ящик (формат?), либо в базу данных сервера
POP3/IMAP, откуда их забирает MUA получателя самостоятельно, либо
с помощью протоколов POP (POP2, POP3) и
IMAP (IMAP2, IMAP2bis, IMAP3, IMAP4).
Типичными POP3/IMAP4 серверами являются
Cyrus IMAP, qpopper, UW IMAP.
Дополнительными компонентами почтовой системы могут быть
разнообразные шлюзы (NetNews, FIDO, X.400), программы обслуживания
почтовых списков (majordomo, almanac, listserv),
WWW-интерфейс, антивирусные и противоспамовые фильтры,
извещатели появления новых писем и т.д..
RFC819 Domain Name Convention for Internet User Applications
RFC974 Mail routing and the domain system. C. Partridge. Jan-01-1986.
(Status: STANDARD)
RFC984 PCMAIL: A distributed mail system for personal computers. D.D. Clark,
M.L. Lambert. May-01-1986. (Obsoleted by RFC0993)
RFC989 Privacy enhancement for Internet electronic mail: Part I: Message
encipherment and authentication procedures. J. Linn. Feb-01-1987. (Obsoleted by RFC1040, RFC1113) (Status: UNKNOWN)
RFC993 PCMAIL: A distributed mail system for personal computers. D.D. Clark,
M.L. Lambert. Dec-01-1986. (Obsoletes RFC0984)
(Obsoleted by RFC1056) (Status: UNKNOWN)
RFC1040 Privacy enhancement for Internet electronic mail: Part I: Message
encipherment and authentication procedures. J. Linn. Jan-01-1988. (Obsoletes RFC0989) (Obsoleted by RFC1113)(Status: UNKNOWN)
RFC1056 PCMAIL: A distributed mail system for personal computers. M.L. Lambert.
Jun-01-1988. (Obsoletes RFC0993) (Status: INFORMATIONAL)
RFC1113 Privacy enhancement for Internet electronic mail: Part I - message
encipherment and authentication procedures. J. Linn. Aug-01-1989. (Obsoletes RFC0989, RFC1040) (Obsoleted by RFC1421) (Status:
HISTORIC)
RFC1114 Privacy enhancement for Internet electronic mail: Part II -
certificate-based key management. S.T. Kent, J. Linn. Aug-01-1989.
(Obsoleted by RFC1422) (Status: HISTORIC)
RFC1115 Privacy enhancement for Internet electronic mail: Part III - algorithms,
modes, and identifiers. J. Linn. Aug-01-1989.
(Obsoleted by RFC1423) (Status: HISTORIC)
RFC1123 Host requirements (modifies 821, 822, and 974)
RFC1168 Intermail and Commercial Mail Relay services. A. Westine, A.L. DeSchon,
J. Postel, C.E. Ward. Jul-01-1990. (Status:INFORMATIONAL)
RFC1204 Message Posting Protocol (MPP). S. Yeh, D. Lee. Feb-01-1991.
RFC1211 Problems with the maintenance of large mailing lists. A. Westine, J.
Postel. Mar-01-1991.
RFC1312 Message Send Protocol 2. R. Nelson, G. Arnold. April 1992.
RFC1339 Remote Mail Checking Protocol. S. Dorner, P. Resnick. June 1992.
RFC1421 Privacy Enhancement for Internet Electronic Mail: Part I: Message Encryption
and Authentication Procedures. J. Linn. February 1993. (Obsoletes RFC1113) (Status: PROPOSED STANDARD)
RFC1422 Privacy Enhancement for Internet Electronic Mail: Part II: Certificate-Based
Key Management. S. Kent. February 1993. (Obsoletes
RFC1114) (Status: PROPOSED STANDARD)
RFC1423 Privacy Enhancement for Internet Electronic Mail: Part III: Algorithms,
Modes, and Identifiers. D. Balenson. February 1993.
(Obsoletes RFC1115) (Status: PROPOSED STANDARD)
RFC1424 Privacy Enhancement for Internet Electronic Mail: Part IV: Key Certification
and Related Services. B. Kaliski. February 1993.
(Status: PROPOSED STANDARD)
RFC1429 Listserv Distribute Protocol. E. Thomas. February 1993.
RFC1642 UTF-7 - A Mail-Safe Transformation Format of Unicode. D. Goldsmith and
M. Davis. July 1994. (Obsoleted by RFC2152)
RFC1711 Classifications in E-mail Routing. J. Houttuin. October 1994.
RFC 1892. Multipart/Report Content Type for the Reporting of Mail System
Administrative Messages. G. Vaudreuil. January 1996.
(Status: PROPOSED STANDARD)
RFC 1893. Enhanced Mail System Status Codes. G. Vaudreuil. January 1996.
(Status: PROPOSED STANDARD)
RFC 1894. An Extensible Message Format for Delivery Status Notifications.
K. Moore and G. Vaudreuil. January 1996. (Status: PROPOSED STANDARD)
RFC2033 Local Mail Transfer Protocol. J. Myers. October 1996.
RFC2142 Mailbox Names for Common Services, Roles and Functions. D. Crocker.
May 1997. (Status: PROPOSED STANDARD)
Fajman, R., "An Extensible Message Format for Message
Disposition Notifications", RFC 2298, March 1998.
RFC2303 Minimal PSTN address format in Internet Mail. C. Allocchio. March 1998.
RFC2304 Minimal FAX address format in Internet Mail. C. Allocchio. March 1998.
RFC2305 A Simple Mode of Facsimile Using Internet Mail. K. Toyoda, H. Ohno,
J. Murai, D. Wing. March 1998.
Baer, J. and G. Neufeld, "The Use of URLs as Meta-Syntax for
Core Mail List Commands and their Transport through Message
Header Fields", RFC 2369, July 1998.
Levinson, E., "The MIME Multipart/Related Content-type",
RFC 2387, August 1998.
Callas, J., Donnerhacke, L., Finney, H. and R. Thayer,
"OpenPGP Message Format", RFC 2440, November 1998.
RFC2476 Message Submission. R. Gellens, J. Klensin. December 1998.
RFC2505 Anti-Spam Recommendations for SMTP MTA. G. Lindberg. February 1999.
RFC2524 Neda's Efficient Mail Submission and Delivery (EMSD) Protocol
Specification Version 1.3. M. Banan. February 1999.
RFC2530 Indicating Supported Media Features Using Extensions to DSN and
MDN. D. Wing. March 1999.
RFC2595 Using TLS with IMAP, POP3 and ACAP. C. Newman. June 1999.
RFC2635 DON'T SPEW A Set of Guidelines for Mass Unsolicited Mailings and
Postings (spam*). S. Hambridge, A. Lunde. June 1999.
RFC2919 List-Id: A Structured Field and Namespace for the Identification
of Mailing Lists. R. Chandhok, G. Wenger. March 2001.
RFC3028 Sieve: A Mail Filtering Language. T. Showalter. January 2001.
RFC3098 How to Advertise Responsibly Using E-Mail and Newsgroups or - how
NOT to $$$$$ MAKE ENEMIES FAST! $$$$$. T. Gavin, D. Eastlake 3rd, S.
Hambridge. April 2001.
RFC3191 Minimal GSTN address format in Internet Mail. C. Allocchio.
October 2001. (Obsoletes RFC2303) (Updates
RFC2846)
RFC3192 Minimal FAX address format in Internet Mail. C. Allocchio.
October 2001. (Obsoletes RFC2304) (Updates RFC2846)