Как точно разобрать код состояния сообщения smtp (DSN)? - PullRequest
1 голос
/ 06 августа 2009

RFC1893 утверждает, что коды состояния будут иметь следующий формат, который вы можете прочитать подробнее здесь .

Но наша система управления отказами испытывает трудности с анализом кода ошибки из сообщений отказов. Мы можем получить необработанное сообщение, но в зависимости от почтового сервера код будет приходить в разных местах. Есть ли какое-либо правило о том, как анализировать сообщения такого типа для получения лучших результатов. Мы не ищем 100% решение, но как минимум 80%.

Этот документ определяет новый набор кодов состояния для сообщения почтовой системы. условия. Эти коды состояния предназначены для использования в средствах массовой информации и независимая от языка отчетность о статусе. Они не предназначены для системная диагностика.

Синтаксис новых кодов состояния определяется как:

      status-code = class "." subject "." detail
      class = "2"/"4"/"5"
      subject = 1*3digit
      detail = 1*3digit

Пробелы и комментарии НЕ допускаются в статусе -
код. Каждый числовой субкод в пределах код состояния ДОЛЖЕН быть выражен
без начальных нулей.

Цитата из RFC, приведенная выше, говорит об одном, а затем текст ниже от ведущего инструмента по управлению отказов говорит о другом, где я могу получить хороший источник стандартных кодов состояния:

Код возврата Описание
0 НЕ ОПРЕДЕЛЕНО - (т.е. ответ получателя)
10 HARD BOUNCE - (т. Е. Пользователь неизвестен)
20 SOFT BOUNCE - Общий
21 SOFT BOUNCE - Отказ DNS
22 SOFT BOUNCE - Почтовый ящик заполнен
23 SOFT BOUNCE - Слишком большое сообщение
30 BOUNCE - нет адреса электронной почты. ОЧЕНЬ РЕДКО!
40 ОБЩИЕ СВЕДЕНИЯ
50 ПОЧТОВЫЙ БЛОК - Общий
51 ПОЧТОВЫЙ БЛОК - Известный Спаммер
52 БЛОК ПОЧТЫ - Обнаружен спам
53 ПОЧТОВЫЙ БЛОК - Обнаружено приложение
54 ПОЧТОВЫЙ БЛОК - Relay Denied
60 AUTO REPLY - (т.е. вне офиса)
70 переходных BOUNCE
80 ПОДПИСАТЬСЯ Запрос
90 НЕ ПОДПИСАТЬСЯ / УДАЛИТЬ Запрос
100 ВЫЗОВ-ОТВЕТ

1 Ответ

2 голосов
/ 06 августа 2009

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

...