Отредактируйте 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
из заголовка имени файла.