Вы можете узнать, является ли электронная почта ответом на другую электронную почту или нет, используя комбинацию In-Reply-To
и References
.Каждое письмо имеет уникальный идентификатор в заголовке Message-ID
, в соответствии с этим RFC 1 , вы можете отслеживать предков любого письма.
Я проверил, и он работает во всех клиентах (Outlook, Thunderbird)Я приведу пример для использования. 1- В заголовке письма, которое вы отправляете в первый раз, вы (ваш почтовый сервер или вы в коде) отправляете ID (Message-ID)
, если вы откроете источник письма, вы увидите его следующим образомв верхнем разделе:
... // You (your code) send:
Message-ID: <1@your-domain-mandatory.com>
...
Вам просто нужно сохранить это Message-ID
в вашей программе.любой последующий ответ будет ссылаться на этот ID
.
2- Клиент ответит вам по электронной почте 1 .Клиент отправит вам crucial header
, чтобы вы сообщили, для какого письма этот ответ является дополнением к его собственному Message-ID
.
... // Client(Thunderbird) send:
Message-ID: <2@your-domain-mandatory.com>
In-Reply-To: <1@your-domain-mandatory.com>
...
Когда вы получите второе письмо, вам будет легкоотслеживать предыдущее письмо, которое вы отправили, потому что ID
письма (1) находится в In-Reply-To
заголовке письма (2).
3- , если вы хотитечтобы снова ответить на это письмо внутри своего кода, вам просто нужно поместить Message-ID
письма (2) в заголовок In-Reply-To
и Message-ID
письма (1) и mail (2) в заголовок References
.Таким образом, клиент будет правильно понимать цепочку.
... // You (your code) send:
Message-ID: <3@your-domain-mandatory.com>
In-Reply-To: <2@your-domain-mandatory.com>
References: <1@your-domain-mandatory.com> <2@your-domain-mandatory.com>
...
С помощью этого заголовка вы сообщаете клиенту, что это электронное письмо является ответом на почту (2), а предками являются почта (1) и почта (2).
Я работал с ними, читал о них, и это работает, моя проблема сейчас заключается в том, чтобы просто получить текст последнего письма, а не цитируемый текст из ответов.(у нас работает собственная система продажи билетов, мы создаем комментарий для каждого письма)