170 похожих чатов

Всем привет. Работаю сейчас почтой. На данный момент я получаю

объект письма с типом Message со всеми хедарами и т.п. так же я имею доступ к IMAP серверу. Мне нужно по письму получить родительское а именно
Переписываются между собой 2 юзера, они о чем то договорились и пересылают письмо на определенный ящик, который слушает мой сервис. я получаю это письмо. так же в рамках одного диалога на этот ящик мне могут несколько раз переслать. И вот, когда мне приходит письмо в рамках одного диалога 2 и более раз, то я хочу добраться до самого первого пришедшего мне письма и получить его объект. Каким способом я могу это сделать? Спасибо.
======
я себе это вижу таким образом есть объект подключения к IMAP и у этого объекта есть какой-то такой метод getParent(msg), но не могу найти адекватного решения. Нужна цепочка типо как создают клиенты.

2 ответов

8 просмотров

Не уверен, что правильно вас понял, но у письма есть хедер In-Reply-To - это мессадж id письма, на которое ответили, так можно добраться до первого письма в треде

Leonov-Aleksandr Автор вопроса
Anton
Не уверен, что правильно вас понял, но у письма ес...

Сейчас постараюсь объяснить. я про Reply-To думал, но есть кейсы, где они отличаются например есть 2 юзера A и B А написал B B ответил A A ответил B и добавил в переписку Ящик бота (бот получил это письмо) Дальше B удалил ящик бота и ответил A A ответил B B ответил A и уже он добавил в переписку Ящик бота (бот получил это письмо) ——— Если я смотрю в web клиент GMAIL на хедеры (Reply-To), то они разные, но web клиент гугла как-то понимает, что это одна цепочка.

Похожие вопросы

Обсуждают сегодня

Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
А чем вам питонисты не угодили?😂
.
79
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
Всем привет. Поделитесь, пожалуйста, опытом. Есть форма, на которой имеется dbgrid и кнопки: добавить, редактировать, удалить. Если нет записей в dbgrid, то кнопки редактирова...
Евгений
5
Как структуру (из MSVC) в которой описаны битовые поля описать для fasm? Вот например это (fBinary...fDummy2 - это физически 1 DWORD): typedef struct _DCB { DWORD DCBlength;...
Евгений
3
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
type TExtensions<GExtender>=class function GetExtension<GEntityExtenderType>:GEntityExtenderType; end; function TExtensions<GExtender>.GetExtension<GEntityExtenderType...
zamtmn
8
Всем привет, препод задал вопрос, подскажите пожалуйста, какой адрес инкапсулирует указатель?
Свинка Пеппа
8
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Карта сайта