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

Измените идентификатор сообщения exim4 для освобождения заблокированной почты Mailscanner

Наша команда системных администраторов редактирует поле Message-ID в заголовочных файлах exim4 (заканчивающихся на -H) и подставляет первый символ после "<".

например:

077I Идентификатор сообщения: <3D945239009B2549BFAE372F090AE90984E0882E7F@example.tld>

->

077I Идентификатор сообщения: <2D945239009B2549BFAE372F090AE90984E0882E7F@example.tld>

Я бы хотел написать сценарий для выпуска писем. Я изменил часть между «<» и «@» в поле Message-ID и заменил хеш-значение, чтобы Message-ID выглядел так:

077I Идентификатор сообщения: <60decadf5f1da96ebb0d28a05def749be8303ad1@example.tld>

Теперь exim сообщает в журнале «ошибка формата» и почта не отправляется. За исключением этого поля, изменений не было.

Почему нельзя так подставить ID? Должен ли он быть одинаковой длины? Это exim4 версии 4.69-2ubuntu0.3.

Я был бы удивлен, если бы ваша группа системных администраторов искажала идентификаторы сообщений.

Чтобы освободить замороженное письмо, вам просто нужно запустить exim с -M вариант. Это требует списка exim идентификаторы сообщений, как показано mailq команда. Вы также можете получить идентификатор сообщения, удалив -H из имени файла заголовка.

Видите "077I" в начале строки? «I» - это флаг заголовка, вы не должны его менять. Но «077» - это количество байтов в этом заголовке. Поскольку вы изменяете количество символов без изменения счетчика, exim видит это как ошибку формата.

Из http://exim.org/exim-html-current/doc/html/spec_html/ch55.html:

Заголовок может занимать несколько строк файла, и для экономии усилий при его чтении каждому заголовку предшествует номер и идентифицирующий символ. Число - это количество символов в заголовке, включая любые встроенные символы новой строки и завершающую новую строку.

Обновите число, чтобы отразить новое количество символов, и все будет в порядке.