Назад | Перейти на главную страницу

Как избежать автоматических ответов из-за зацикливания вашего почтового сервера?

У меня есть почтовый сервер X, который действует как посредник между клиентами (A) нашего апплета обратной связи, созданного для использования на их веб-сайтах, и клиентами (B) наших клиентов.

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

Проблема: Бесконечные циклы создаются, если и A, и C имеют автоматические ответы.

Как можно предотвратить то же самое?

Решения, о которых мы думали до сих пор:

  1. Составьте словарь правдоподобных слов, которые можно использовать в методах «В гостях».

    Проблема: Не исчерпывающий.

  2. Не разрешать более «X» сообщений между двумя сторонами за один день.

    Проблема: Ограничивает законное использование.

Не разрешать более «X» сообщений между двумя сторонами за один день.

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

Итак, установите «X сообщений за Y минут» или что-то в этом роде.

в дополнение к «ограничению x количества сообщений в y времени на адрес» есть несколько индикаторов того, что сообщение генерируется автоматически и поэтому, вероятно, не должно пересылаться.

проверьте, например, следующие заголовки (и УСТАНОВИТЕ ИХ в вашем почтовом сервере пересылки, так что хорошо работающие реализации вне офиса даже не отвечают на ваше приложение)

precedence: bulk/list/junk
x-precedence: bulk/list/junk
auto-submitted: auto-replied
X-Auto-Response-Suppress: ALL/DR/NDR/RN/NRN/OOF/AutoReply
x-autoresponse

Кроме того, в некоторых реализациях вне офиса в качестве отправителя конверта используется не адрес электронной почты пользователя, а что-то вроде postmaster @ или нулевого отправителя.

Я перечислил еще несколько показателей в этом вопросе stackoverflow но я не уверен, что они применимы в вашем случае.

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

Таким образом, если ваш объем и вычислительная мощность позволяют это, почему бы не поискать повторяющиеся ответы в шаблоне ABAB? То есть, если вы видите следующее, верните его добрым сообщением, в котором говорится, что сходство ответов аналогично тому, которое генерируется автоматическими ответами:

From: Adam
Sent: Wednesday, January 03, 2013 9:10 AM
To: Box Co
Subject: RE: That thing

I'm on vacation and will get back to you on January 10.
-Adam

From: Box Co
Sent: Wednesday, January 03, 2013 9:11 AM
To: Adam
Subject: RE: That Thing

We are closed in order to observe the Tamaseseri Festival and will return tomorrow.
Box Co
Where the boxes are best!

From: Adam 
Sent: Wednesday, January 03, 2013 9:10 AM
To: Box Co
Subject: RE: That thing

I'm on vacation and will get back to you on January 10.
-Adam

From: Box Co
Sent: Wednesday, January 03, 2013 9:08 AM
To: Adam
Subject: RE: That Thing

We are closed in order to observe the Tamaseseri Festival and will return tomorrow.
Box Co
Where the boxes are best!

From: Adam 
Sent: Wednesday, January 03, 2013 9:07 AM
To: Box Co
Subject: That thing

Do you have that thing I put in the box?
-Adam

Сделайте что-нибудь вроде /\nSubject.*\n([.\n]*?)\nFrom/ чтобы найти, что каждая сторона отправила друг другу, и сравнить на предмет сходства в шаблоне ABAB. Вам нужно будет удалить эффекты автоматического отступа и т. Д.

Это непростое решение, но я считаю, что его можно заставить работать и свести к минимуму ложные срабатывания и ложные отрицания.