Алгоритм получения связанных писем, присутствующих в папке "Входящие" Gmail - PullRequest
0 голосов
/ 25 мая 2020

Я хотел узнать, какой алгоритм использует Gmail для получения связанных писем.

Пример: я рассматриваю двух человек, Тома и Джона. Том начал разговор с Джоном.

Примечание: это некоторое представление писем, отправленных Томом и Джоном

  (J-mail-1) : John's first mail.
  (T-mail-1) : Tom's first mail.
  (T-mail-2) : Tom's second mail.
  (J-mail-2) : John's second mail.
  (J-mail-3) : John's third mail.
  • Том: Отправить письмо из его почты Джону. (T-mail-1)
  • Джон: Ответить на письмо Тому. (J-mail-1)
  • Том: И снова он отправил Тому в той же цепочке. mail-2)
  • Джон: На ​​этот раз, Джон, ответьте на первое письмо, отправленное Томом (J-mail-2)
  • Джон: И снова Джон: ответьте на второе письмо Тома. (Дж. -mail-3)

Теперь, если мы видим в почтовом ящике Gmail Тома, мы можем найти ответ для 1-го письма от Джона, связанного или сопоставленного с первым и последним письмом Тома.

Итак, я хотел знать, какой алгоритм на стороне сервера используется для выполнения вышеуказанного типа операции. Как это правильно сопоставлено.

Окончательный результат описанного выше сценария. (В папке «Входящие» Тома)

(T-mail-1) ::::(Associated/Mapped) ::::: (J-mail-1) and (J-mail-2)

(T-mail-2) :::: (Associated/Mapped) :::::  (J-mail-3)

Спасибо

1 Ответ

0 голосов
/ 25 мая 2020

Не уверен, что именно делает Google, но ...

RF C 2822 (среди многих других) определяет электронную почту. Каждое электронное письмо должно иметь идентификатор сообщения, передаваемый в заголовке Message-ID:. Когда вы отвечаете на электронное письмо, почтовый клиент должен включать заголовок In-Reply-To: со значением идентификатора сообщения, на которое вы отвечаете ( раздел 3.6.4 ). Теперь в папке «Входящие» вы просматриваете каждое электронное письмо, проверяете, есть ли в нем заголовок In-Reply-To:, и ищите письмо с этим идентификатором. Это будет его родитель.

Некоторые отсталые системы поддержки клиентов электронной почты могут отбрасывать заголовок In-reply-to:. В качестве второго наилучшего предположения вы можете посмотреть на заголовок электронного письма Subject: и использовать регулярное выражение, чтобы увидеть, вероятно ли, что два электронных письма относятся к одному и тому же разговору: если они отличаются только префиксом «Re:», они могут быть в тот же разговор. Подсчитайте префиксы «Re:» и сравните отметки времени, чтобы определить порядок разговора.

...