Меня очень беспокоит идея фильтровать дублирующиеся сообщения электронной почты по заголовку Subject:
. Если они создаются несколькими приложениями, как вы можете быть уверены, что содержимое сообщений дублируется, и что вы не случайно отправляете важные уведомления?
Единственная уникальная функция сообщения, которую можно использовать для фильтрации дубликатов, - это заголовок Message-ID:
. Если этот заголовок одинаков для двух сообщений, то обычно разумно предположить, что они являются копиями одного и того же исходного сообщения, например один получен напрямую, а другой - в виде списка рассылки.
Тем не менее, вы можете делать практически все, что угодно, на большинстве SMTP-серверов - по крайней мере, на тех, которые основаны на Unix-подобных ОС. Например, Postfix может использовать собственные сценарии оболочки для фильтрации .
Вы можете, например, использовать formail , чтобы извлечь тело каждого сообщения и создать его
MD5 хеш Сравнение хэшей тела сообщения вместе с заголовками Date:
, Subject:
, From:
, To:
и Cc:
одновременно является хорошим началом для обнаружения реальных дубликатов.