Подтвердить что ты не робот

Сохранение пользовательских заголовков в электронной почте

Я, наверное, странный вопрос, но я подумал, что пойду и спрошу. Скажем, я отправляю электронное письмо с помощью IMAP SMTP через специальный клиент. Этот клиент добавляет несколько пользовательских заголовков к сообщению электронной почты, прежде чем отправлять его на своем пути. Получатель получает это письмо и отвечает мне напрямую (и, возможно, CC несколько человек).

Мой вопрос таков: Учитывая приведенный выше пример, будут ли эти X-заголовки сохраняться во всех новых сообщениях в потоке?

Одна вещь, о которой я могу думать, заключается в том, что клиент будет знать исходное сообщение электронной почты, которое он отправил. Все последующие ответы на это письмо будут иметь заголовок "Reply-To", значение которого равно "Message-Id" предыдущего письма. Я не понимаю, почему я не мог сканировать эти ответы, пока не дойду до исходного сообщения, отправленного клиентом, тем самым получив исходные пользовательские заголовки.

Возможно, я передумал это. Какие-либо предложения?:)

4b9b3361

Ответ 1

Ответ на сообщение не обязательно содержит что-либо из исходного сообщения. MUA, скорее всего, предложит модифицированную (например, добавленную с версией "Re:" ) оригинальную тему, и, очевидно, адреса используются для соответствующих значений по умолчанию. Ни одно другое содержимое сообщения не является частью ответа (если отправитель не намеренно включает его, как при цитировании или пересылке). Любые заголовки X, которые у вас есть в вашем сообщении, безусловно, не будут включены в ответ (если только вы не контролируете этот MUA).

Однако ваш план отслеживания исходного сообщения, безусловно, возможен: см. раздел 3.6.4 RFC 5322. Каждое сообщение должно (не должно) иметь заголовок Message-ID, и при необходимости должно иметь заголовки In-Reply-To и References.

Поле "Message-ID:" содержит единственный уникальный идентификатор сообщения. Поля "Ссылки:" и "В ответ на:" содержат один или несколько уникальных идентификаторов сообщений, необязательно разделенных [пробелами].

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

Обратите внимание, что In-Reply-To и Reply-To - это не одно и то же (последний указывает адрес, по которому отправитель желает, чтобы ответы были отправлены).

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

Ответ 2

Насколько я знаю, нет оснований полагать, что любой почтовый клиент будет распространять любые строки заголовков, которые он не понимает. Большинство из них сохранит объект (обычно добавляет "Re:", если это необходимо) и выводит свои строки "To:" и "Cc:" из предыдущих заголовков сообщений, но об этом. Я полагаю, что некоторые (но не все) будут генерировать строку "In-Reply-To", но насколько это возможно.

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