отправить сообщение через SMTP с идентификатором гарантии


Добрый день!
извините за столь "ясный" вопрос, Позвольте мне объяснить. В моей "программе"я отправляю некоторые электронные письма, например, через SMTP-сервер gmail. Давайте представим, что каждое письмо, которое я отправил, содержит какой-то уникальный идентификатор (сгенерированный мной) в заголовке. Есть ли шанс, что после извлечения этих сообщений из gmail (например, с помощью python imaplib)я снова получу этот уникальный идентификатор (в заголовке)?
Спасибо

2 2

2 ответа:

В общем случае MTAs сохранит все заголовки сообщений, которые вы введете. Ретрансляционные МТА являются требуется для этого:

Как описано в разделе 6.4, ретранслятор SMTP не нуждается в проверке или воздействовать на раздел заголовка или тело данных сообщения и не должен сделайте это, за исключением добавления собственного поля заголовка " получено: "(раздел 4.4) и, при необходимости, попытаться обнаружить цикличность в почтовой системе (см. Раздел 6.3). Конечно, и этот запрет применяется к любому изменения этих полей заголовка или текста (см. Также раздел 7.9).

И в целом получающий MTA также просто добавит дополнительные заголовки, связанные с получением сообщений, проверкой спама, обнаружением петель и тому подобным. Так что да, вы почти наверняка будете в безопасности, независимо от того, какой конечный SMTP-сервер вы используете, GMail или другой.

Если идентификаторы действительно уникальны, вы можете рассмотреть возможность их использования в качестве части вашего значения заголовка Message-ID . Преимущество использования Message-ID для этой цели заключается в том, что когда пользователи отвечают на ваше сообщение, они обычно включают это значение Message-ID в свой заголовок In-Reply-To и/или References:

Поле "Message-ID:" предоставляет уникальный идентификатор сообщения, который относится к определенной версии конкретного сообщения. То уникальность идентификатора сообщения гарантируется хостом, который генерирует его (см. ниже). Этот идентификатор сообщения должен быть машиночитаемый и не очень обязательно значимый для людей. Сообщение идентификатор относится ровно к одной версии конкретного сообщения; последующие редакции сообщения каждый раз получают новое сообщение идентификаторы.

Поля" In-Reply-To: "и" References: "используются при создании ответ на сообщение. Они содержат идентификатор сообщения оригинала сообщение и идентификаторы сообщений других сообщений (например, в случае ответа на сообщение, которое само было ответом). То Поле" In-Reply-To: "может использоваться для идентификации сообщения (или сообщения), на которые новое сообщение является ответом, в то время как "Ссылки:" поле может использоваться для идентификации "потока" разговор.

Я только что провел небольшое тестирование на этом, и это выглядит возможным и на самом деле довольно легко.

Я воспользовался почтой.расширение php, чтобы это произошло (не должно иметь значения, хотя). Я добавил дополнительный заголовок, прежде чем отправить сообщение ("Тревор" => "мой тест"). Я получил сообщение в Gmail и сделал "показать оригинал", и он содержит заголовок.

Затем я вытащил это сообщение (также через PHP), и заголовок содержит пользовательскую строку, которую я ввел.