Архитектура электронной почты

Архитектура электронной почты

 

MTA (англ. Mail Transfer Agent — агент пересылки почты) — отвечает за пересылку почты между почтовыми серверами; как правило, первый MTA в цепочке получает сообщение от MUA, последний передает сообщение к MDA;

MDA (англ. Mail Delivery Agent - агент доставки почты) — отвечает за доставку почты конечному пользователю;

MUA (англ. Mail User Agent — почтовый агент пользователя; в русской нотации закрепился термин почтовый клиент) — программа, обеспечивающая пользовательский интерфейс, отображающая полученные письма и предоставляющая возможность отвечать, создавать, перенаправлять письма;

MRA (англ. Mail Retrieve Agent) — почтовый сервер, забирающий почту с другого сервера по протоколам, предназначенным для MDA.

 

 

Протоколы отправки/получения почты (SMTP, POP3 и IMAP)

 

Отправка и получение почты осуществляется через специальные протоколы: SMTP, POP3 и IMAP - протоколы стека TCP/IP, предназначенные для работы с электронной почтой. Каждый протокол представляет собой набор правил для взаимодействия между почтовыми клиентом и сервером.

Протокол

Описание

Порт

Стандарт

SMTP (англ. Simple Mail Transfer Protocol - простой протокол передачи почты)

Используется для отправки почты с клиента (например, Microsoft OutlookMozilla Thunderbird или веб-интерфейс) на почтовый сервер

  • 25

  • 465/587 (c шифрованием)

RFC 5321

POP3 (англ. Post Office Protocol Version 3 — протокол почтового отделения, версия 3)

Позволяет почтовому клиенту загружать сообщения с почтового сервера. Протокол довольно прост и в целом не содержит других функций кроме загрузки; спроектирован так, что после подключения к серверу, сразу загружаются все сообщения, после чего они удаляются с сервера и соединение завершается

  • 110

RFC 1939

IMAP (англ. Internet Message Access Protocol - протокол прикладного уровня для доступа к электронной почте)

Реализует ряд возможностей протокола POP3 и является протоколом, используя который клиент может загружать почтовые сообщения с сервера. Более функционален: загружаемые письма могут сохранятся на севере, можно читать письма из разных папок (например, Отправленные или Спам) и др. В связи с этим, IMAP требует большего пространства на жестком диске, больше нагружает процессор, чем POP3

  • 143

  • 993 (c шифрованием)

RFC 3501

 

 

Формат электронного письма

 

При передаче по протоколу SMTP электронное письмо состоит из следующих частей:

  1. Данные SMTP-конверта, полученные сервером (служебная информация для сервера).

  2. Сообщение (DATA): состоит из двух частей, разделенных пустой строкой:

    • заголовки письма (англ. Headers): служебная информация и пометки почтовых серверов, через которые прошло письмо, пометки о приоритете, указание на адрес и имя отправителя и получателя письма, тема письма и другая информация;

    • тела (англ. Body) письма: непосредственно сообщение.

 

 

Данные SMTP-конверта

 

Данные SMTP-конверта содержат в себе следующую информацию:

Параметр

Описание

HELO/EHLO

Имя отправляющего узла (имя сервера или компьютера пользователя, который обратился к серверу)

MAIL FROM

Адрес отправителя. Значение используется для формирования уведомлений об ошибках доставки сообщений, а, не значение из поля From заголовка сообщения)

RCPT TO

Адрес одного или нескольких получателей

 

 

Сообщение - Заголовки письма

 

Заголовки письма формируются и интерпретируются пользовательскими агентами и описываются стандартами RFC:

  • RFC 2076 — Common Internet Message Headers (общепринятые стандарты заголовков сообщений);

  • RFC 4021 — Registration of Mail and MIME Header Fields (регистрация почты и поля заголовков MIME) — стандарт, описывающий передачу различных типов данных по электронной почте.

Каждый заголовок состоит из ключевого слова и значения, разделенных двоеточием (аналогично HTTP). В заголовках обычно указывается следующая информация:

  • почтовые серверы, через которые прошло письмо (каждый почтовый сервер добавляет информацию о том, от кого он получил это письмо);

  • похоже ли это письмо на спам;

  • информацию о проверке антивирусами;

  • уровень срочности письма (может меняться почтовыми серверами).

  • наименование программы, с помощью которой было создано письмо.

 

В нижеуказанной таблице приведены наиболее часто используемые заголовки:

Заголовок

Описание

From

Имя и адрес отправителя (именно в этом заголовке появляется текстовое поле с именем отправителя)

Sender

Отправитель письма. Добавлено для возможности указать, что письмо от чьего-то имени отправлено другой персоной (например, секретарем от имени начальника)

To

Имя и адрес получателя; может содержаться несколько раз (если письмо адресовано нескольким получателям)

Сc

(англ. Carbon Copy - точная копия) Содержит имена и адреса вторичных получателей письма, к которым направляется копия

Bcc

(англ. Blind Carbon Copy) Содержит имена и адреса получателей письма, чьи адреса не следует показывать другим получателям

Subject

Тема письма

Date

Дата отправки письма

Content-Type

Тип содержимого письма (HTML, RTF, Plain text) и кодировка, в которой создано письмо

Reply-To

Имя и адрес, куда следует адресовать ответы на это письмо (например, письмо рассылается роботом, то в качестве Reply-To будет указан адрес почтового ящика, готового принять ответ на письмо)

Return-Path

Адрес возврата в случае неудачи, когда невозможно доставить письмо по адресу назначения

Received

Данные о прохождении письма через каждый конкретный почтовый сервер (MTA): при прохождении через несколько почтовых серверов, новые заголовки дописываются над предыдущими, в конечном итоге, журнал перемещения будет записан в обратном порядке (от ближайшего к получателю узла к самому дальнему)

MIME-Version

Версия MIME, с которым это сообщение создано

 

Кроме стандартных, почтовые клиенты, серверы и роботы обработки почты могут добавлять свои собственные заголовки, начинающиеся с X- (например, X-Mailer или X-Spamassasin-Level).

 

 

Сообщение - Тело письма

 

Тело письма отделяется от заголовка пустой строкой. В теле сообщения допускаются только печатные символы, поэтому для целей передачи бинарной информации (картинок, исполняемых файлов и т.п.) применяются кодировки, приводящие данные к 7-битному виду, например, Base64.

Пример электронного письма приведен в нижеизложенном листинге:

Return-Path: <mrboss@roga-kopyta.com>
Delivered-To: bigjohn@server24.ru
Received: from mail.server24.ru
    by mail.server24.ru with LMTP
    id 3eGxA9l62WJXgQAAeYFEaA
    (envelope-from <mrboss@roga-kopyta.com>)
    for <bigjohn@server24.ru>; Thu, 21 Jul 2022 19:12:09 +0300
Received: from mx.roga-kopyta.com (mx10.roga-kopyta.com [195.233.122.166])
    by mail.server24.ru (Postfix) with ESMTPS id 043D740ABB
    for <bigjohn@server24.ru>; Thu, 21 Jul 2022 19:12:07 +0300 (MSK)
Authentication-Results: mail.server24.ru;
    dkim=pass (2048-bit key; unprotected) header.d=roga-kopyta.ru header.i=@roga-kopyta.ru header.a=rsa-sha256 header.s=4823maebo214roga-kopytaict54 header.b=BWQIgPLh;
    dkim-atps=neutral
From: MR BOSS <mrboss@roga-kopyta.com>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=roga-kopyta.ru;
    s=4823maebo214roga-kopytaict54; t=1658419926;
    bh=zoQgAFrkWvq3MjiA19DhBnbOFt58IMm7an3lwXDR3j8=;
    h=From:To:Subject:Date:From;
    b=BWQIgPLhxZJcc05k111PrUsLf1farGLaWQ+Be4sBVyrNXExW1g29vpG2aTqVZ9EQR
     FBe1i4LcYpzPYFXee6CDqFwuea+1Ip3/AMQ/URmAEyzff0Ee2ZZiUMnNnTOS2aMvsy
     EpzS8Qp3+wIN97L1hHogi2/bQo9v6QS/ZCwkkJa2u1tgyrqy2Pl/6tie3ZT0PD1UD2
     kRV2SFmknDY1l1vJqHXVfRwKRXA1+cz9YDfYLwJnZBAGTXu22XympIB7Hc7pMPSvAN
     Yo2b8R1xyoeHA==
To: "'bigjohn@server24.ru'" <bigjohn@server24.ru>
Subject: Apache2
Thread-Topic: Apache2
Thread-Index: AdidHJw4EYiMoFXGRy+N9abmmpo1xQ==
Date: Thu, 21 Jul 2022 16:12:05 +0000
Message-ID: <cca46541fa134546a99b4f5779d2d34b@roga-kopyta.ru>
Accept-Language: ru-RU, en-US
Content-Language: ru-RU
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.98.55.22]
Content-Type: multipart/alternative;
    boundary="_000_cca46541fa134546a99b4f5779d2d34broga-kopytaru_"
MIME-Version: 1.0

--_000_cca46541fa134546a99b4f5779d2d34broga-kopytaru_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

PElmTW9kdWxlIG1vZF9mY2dp111jPg0KICAjIDIwTUIgc2hv1WxkIGJlIGVub3VnaA0KICBNYXhS
ZXF1ZXN0TGVuIDIwMDAwMDA1DQo8L0lmTW9kdWxlPg0K

--_000_cca46541fa134546a99b4f5779d2d34broga-kopytaru_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh01WwgeG1sbnM6dj1idXJuOnNjaGVtYXMtbWljcm9z12Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2101WNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0ia1R0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw01CI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyB1aGF1c2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi1qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb210LWZhY2UNCgl7Zm9udC1mYW1pbHk6
IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m
DQo8cCBjbGFzcz011XNvTm9ybWFsIj48c3BhbiBsYW5nPSJFT11VUyIgc3R5bGU9ImZvbnQtZmFt
aWx5OkNvbnNvbGFzIj4mbmJzcDsgIyAyME1CIHNob3VsZCBiZSBlbm91Z2g8bzpwPjwvbzpwPjwv
c3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9
ImZvbnQtZmFt11x5OkNvbnNvbGFzIj4mbmJzcDsgPC9zcGFuPjxzcGFuIH10eWxlPSJmb250LWZh
bWlseTpDb25zb2xhcyI+TWF4UmVxdWVzdExlbiAyMDAwMDAwMDxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob31tYWwiPjxzcG1uIHN0eWxlPSJmb250LWZhbWlseTpDb25zb2xh
cyI+Jmx0Oy9JZk1vZHVs1SZndDs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj1NCjwvYm9k
eT4NCjwvaHR1bD4NCg==

--_000_cca46541fa134546a11b4f5779d2d34broga-kopytaru_--