Все статьи

Заголовки email: как проследить путь письма от отправителя до вас

Каждое письмо несёт скрытую техническую историю: набор заголовков, которые почтовый клиент прячет от глаз, но которые честно показывают, через какие серверы прошло письмо и не подделан ли отправитель. У писем с русскоязычной темой или именем отправителя есть ещё один слой — заголовки, закодированные по RFC 2047, потому что кириллица не помещается в семизначный ASCII, который умеет обрабатывать классический формат письма.

Почему тема письма превращается в набор символов «=?UTF-8?B?...?=»

Заголовки письма исторически ограничены ASCII, поэтому нельзя просто написать «Тема: Счёт на оплату» — почтовый сервер может исказить или обрезать кириллицу. RFC 2047 решает это, оборачивая закодированный текст в конструкцию вида =?UTF-8?B?0KHRh9C10YIg0L3QsCDQvtC/0LvQsNGC0YM=?=: сначала кодировка (UTF-8), затем буква B (Base64) или Q (quoted-printable), а внутри — сами байты темы. Анализатор заголовков должен раскодировать это обратно в читаемую строку «Счёт на оплату», иначе в поле Subject останется нечитаемая абракадабра.

Заголовки Received: карта маршрута письма

Каждый почтовый сервер, через который проходит письмо, добавляет собственный заголовок Received сверху списка — поэтому чтобы проследить путь письма от отправителя до вас, заголовки нужно читать снизу вверх, в порядке, обратном тому, как они добавлялись. У писем от Mail.ru, «Яндекс Почты» или corporate-серверов на базе Exchange цепочка Received часто длиннее, чем у писем из Gmail, из-за дополнительных серверов антиспам-фильтрации.

SPF, DKIM и DMARC: три проверки подлинности

SPF (Sender Policy Framework) — DNS-запись домена, перечисляющая серверы, которым разрешено отправлять почту от его имени. DKIM добавляет криптографическую подпись, проверяемую открытым ключом из DNS отправителя, и подтверждает, что содержимое письма не изменили в пути. DMARC говорит принимающему серверу, что делать с письмом, не прошедшим SPF или DKIM: отклонить, пометить как спам или пропустить с пометкой. Эти три механизма особенно важны для доменов российских компаний, которые часто рассылают счета и уведомления — без правильного DMARC такие письма легко подделать для фишинга.

Зачем это нужно

  • Проверить, не является ли подозрительное письмо попыткой фишинга с поддельным адресом отправителя.
  • Раскодировать тему или имя отправителя, если они превратились в строку =?UTF-8?B?...?=.
  • Диагностировать, почему собственные письма попадают в спам у получателей.

Зачем нужен Message-ID

Заголовок Message-ID — уникальный идентификатор конкретного письма, который почтовый клиент присваивает при отправке и который теоретически никогда не повторяется ни в одном другом письме в мире. Он критически важен для группировки переписки в «ветки» (threading): когда вы отвечаете на письмо, ваш клиент записывает исходный Message-ID в заголовок In-Reply-To, и именно по этой связи почтовые сервисы показывают письма как один разговор, а не отдельные сообщения.

Попробовать инструмент