отправить сообщение через SMTP с идентификатором гарантии - PullRequest
2 голосов
/ 02 февраля 2011

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

Ответы [ 2 ]

2 голосов
/ 03 февраля 2011

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

Как обсуждалось в разделе 6.4, SMTP реле не нужно проверять или воздействовать на раздел заголовка илиОсновная часть данных сообщения и НЕ ДОЛЖНА этого делать, за исключением добавления собственного поля заголовка «Received:» (раздел 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:» может использоваться для идентификации сообщения (или сообщений), на которое новое сообщение является ответом, а поле «References:» может использоваться для идентификации «цепочки» разговора.

2 голосов
/ 02 февраля 2011

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

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

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

...