Отредактируйте exim4 Message-ID для освобождения заблокированной почты Mailscanner

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

например:

077I ID сообщения: <3D945239009B2549BFAE372F090AE90984E0882E7F@example.tld>

->

077I ID сообщения: <2D945239009B2549BFAE372F090AE90984E0882E7F@example.tld>

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

077I ID сообщения: <60decadf5f1da96ebb0d28a05def749be8303ad1@example.tld>

Теперь exim говорит "ошибка формата" в журнале, и почта не освобождается. Там не было никаких изменений, кроме этого одного поля.

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

2 ответа

Решение

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

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

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

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

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

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

Другие вопросы по тегам