1. Основной метод контроля доставки - слежение за ошибками отправки (bounce). Ошибка чаще всего дается непосредственно в SMTP-сессию. В некоторых случаях сервер получателя принимает письмо, но в дальнейшем формирует сообщение о невозможности доставки (NDR).
По стандартам, выдача сообщения о невозможности доставки в SMTP-сессию или отправка NDR являются обязательными, если ваше письмо прошло авторизацию (SPF и/или DKIM) - вы можете быть уверены, что получите баунс в SMTP-сессию или NDR если письмо не будет доставлено практически на 100%. Поэтому если на письмо в разумное время не получено отлупа, можно считать его доставленным. Сообщения о невозможности доставки идут на адрес отправителя SMTP-конверта (envelope-from). Чтобы точно знать, на какой адрес какое письмо не было доставлено, можно для каждого отправляемого письма формировать уникальный envelope-from.
2. Есть расширение SMTP которое называется delivery status notification
https://tools.ietf.org/html/rfc3461
при отправке письма можно запросить, чтобы подтверждение доставки письма в ящик или на сервер получателя, не поддерживающего DSN пришло в явном виде. Подтверждения формирует MTA без участия пользователя. Поддерживается не всеми (например, postfix поддерживает, exim нет).
3. Есть нестандартный заголовок Return-Receipt-To, который работает примерно так же как DSN. Но поскольку он нестандартный, его поддержка крайне ограничена.
4. Есть стандартный (RFC 3798) заголовок Disposition-Notification-To упомянутый выше, это не уведомление о доставке, а уведомление о прочтении. Запрос на это уведомление как правило показывается пользователю и требует его подтверждения. Не надо использовать этот заголовок, если вы не хотите, чтобы вас прокляли.
5. Пиксель в письме - не поможет проверить доставляемость, но в некоторых случаях позволить узнать что письмо было прочитано.
6. (привет модератору). Таки есть службы типа
postmaster.mail.ru и
postmaster.yandex.ru, которые позволяют отслеживать доставляемость писем получателям данных сервисов, а это порядка 70-80% всех получателей. В данных службах можно смотреть статистику по доставляемости писем, попаданию в папку спам, действия с письмами (чтение, помечания спамом, удаления с прочтением/без прочтения). Причем можно задавать категории писем через специальный заголовок или селекторы DKIM и получать статистику раздельно по категориям писем. Это позволяет получить информацию даже по отдельному письму, задав ему отдельную категорию. Но делать так массово не стоит.
Это основной источник данных по попаданию в спам / удалению без прочтений, etc.
Немного не в тему, но может помочь:
7. Можно (и нужно, если вы организуете массовые рассылки) завести ящики-ловушки на разных сервисах, добавлять их в рассылки и отслеживать доставляемость писем до этих ящиков, в частности попало ли письмо в inbox.
8. Почти все крупные сервисы поддерживают
FBL. Вы можете в реальном времени узнавать, если на вашу рассылку идут жалобы пользователей.