Какую эвристику я должен использовать, чтобы предотвратить войну автоответчика? - PullRequest
4 голосов
/ 16 февраля 2011

В настоящее время я расширяю систему электронной почты с функцией автоответа. В темном прошлом я видел несколько потрясающих почтовых петель, и теперь я стараюсь не допустить, чтобы подобное происходило со мной.

Я посмотрел, как это делают другие инструменты ('mailbot', 'каникулы'), нашел свой собственный почтовый архив для поиска подозрительных почтовых заголовков, но мне интересно, могу ли я добавить что-то еще.

Мой процесс на данный момент:

  1. Отклонить, если адрес отправителя неверен (это должно избавить от сообщений с <> отправителем)
  2. Отказаться, если адрес отправителя соответствует одному из следующих: '^root@', '^hostmaster@', '^postmaster@', '^nobody@', '^www@', '-request@'
  3. Отказаться, если присутствует один из этих заголовков (после нормализации пробела и нижнего регистра): '^precedence: junk$', '^precedence: bulk$', '^precedence: list$', '^list-id:', '^content-type: multipart/report$', '^x-autogenerated: reply$', '^auto-submit: yes$', '^subject: auto-response$'
  4. Отказаться, если автоответчик уже видел адрес отправителя в недавнем прошлом.
  5. Отказаться, если адрес отправителя является моим собственным адресом:)
  6. Примите и отправьте автоответчик, добавив к теме субъекта Auto-response:, установив заголовки Precedence: bulk и Auto-Submit: yes, чтобы, как мы надеемся, какой-либо удаленный почтовик отправил автоответчик дальше.

Есть что-то, что я пропускаю?

Ответы [ 3 ]

3 голосов
/ 22 мая 2014

Обновление 2014-05-22

Чтобы определить, является ли входящее сообщение «отсутствующим на работе» или другим автоматическим ответом, мы используем следующую процедуру:

Сначала найдите, присутствует ли заголовок "In-Reply-To". Если нет, то это автоматический ответ.

Иначе, проверьте, присутствует ли 1 из этих заголовков:

  • X-Auto-Response-Suppress (любое значение)
  • Приоритет (значение содержит объем, мусор или список)
  • X-Webmin-Autoreply (значение 1)
  • X-Autogenerated (значение Ответить)
  • X-AutoReply (значение YES)
2 голосов
/ 30 декабря 2014

В своих исследованиях до сих пор я придумал эти правила.

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

  • Return-Path заголовок <> или отсутствует / недействителен
  • Auto-Submitted заголовок присутствует с любым значением, отличным от «нет»
  • X-Auto-Response-Suppress заголовок присутствует
  • In-Reply-To заголовок отсутствует
    • Примечание : Если я правильно читаю RFC3834 , ваши собственные программы ДОЛЖНЫ установить это, но, похоже, некоторые автоответчики пропускают это (freshdesk.com)

При отправке исходящих сообщений обязательно ...

  • Установить заголовок Auto-Submitted: auto-generated (или auto-replied каксоответствующий)
  • Установите команду SMTP MAIL FROM: с нулевым адресом <>
    • Обратите внимание, что некоторые службы доставки, в том числе Amazon SES, устанавливают здесь свои собственные значения, поэтому это может быть неосуществимо
  • Сравните получателя с черным списком, созданным входящей стороной, и прервите отправку в известное автореsponders
  • Рассмотрите возможность отправки не более 1 сообщения в единицу времени (например, 24 часа) данному получателю

Примечания относительно других ответов и баллов

  • Я думаю, что игнорирование Precedence: list сообщений вызовет ложные срабатывания, по крайней мере, для конфигурации моего приложения
  • Я считаю, что правило автоматической отправки OP является опечаткой, а официальный заголовок - Auto-Submitted

Ссылки


Комментарии приветствуются, и я обновлю этот ответ, как этотхороший вопрос, и я хотел бы, чтобы был создан авторитетный ответ.

1 голос
/ 16 февраля 2011

Включите в текст фразу вроде "Это автоматически генерируемый ответ".Если ваше тело сообщения HTML (не обычный текст), вы можете использовать стиль, чтобы сделать его невидимым.

Проверьте эту фразу, прежде чем ответить.Если он существует, шансы хорошие, это автоматический ответ.

...