Сервер postfix иногда помещает почту в поврежденную очередь. Эти сообщения никогда не проверяются из-за ошибки в файле (я вижу «неверный тип записи: 43 в содержимом сообщения»). В документации я вижу: «Нечитаемые или поврежденные файлы очереди перемещаются сюда для проверки».
ХОРОШО. Я могу прочитать их с помощью postcat, но что мне делать после этого? Могу ли я удалить их без ошибок? Что мне сделать, чтобы вернуть их в очередь отправки? Я нашел куда-то переместить файлы в maildrop, но ничего не происходит.
Спасибо !
Дом
Это довольно странное поведение, я никогда не видел, чтобы postfix делал это, у вас либо очень старый постфикс, либо у вас где-то должна быть какая-то аппаратная проблема, например, повреждение памяти или повреждение жесткого диска.
Чтобы вернуть свое электронное письмо в очередь, проще всего сделать это с помощью postcat
и немного awk
, что-то вроде (но YMMV):
postcat -q <m-id> |
awk 'BEGIN {data=0}
/^*** HEADER EXTRACTED/ {data=0;print "."; print "quit"}
data==1 {if ($0 == ".") { $0 = ".."}; print}
/^*** MESSAGE CONTENTS/ {data=1; print "DATA"}
data==0 && /^sender:/ {print "HELO myfqdn\nMAIL FROM: " $2}
data==0 && /^original_recipient: / {print "RCPT TO: " $2}' |
sendmail -bs
Я получил поврежденные сообщения после ручного редактирования ошибочных сообщений с помощью vim. Чтобы исправить это, мне пришлось отредактировать файлы с помощью шестнадцатеричного редактора. октета. Вкратце, первая строка сообщения содержит 5 значений ascii. Первое и последнее значение - длина сообщения, второе значение - длина конверта. Не уверен насчет других значений.
Каждой записи предшествует 1-байтовый тип записи и 1-байтовая длина записи. Оба эти значения являются двоичными и при необходимости должны быть изменены с помощью шестнадцатеричного редактора.
Вы можете использовать различные параметры в postcat, чтобы определить, есть ли какие-либо ошибки.
postcat <msgid>
postcat -b <msgid>
postcat -e <msgid>
postcat -v <msgid>
Чтобы повторно отправить сообщение, мне пришлось добавить «HELO myfqdn \ n» непосредственно перед «MAIL FROM:»
Вы можете указать номер версии постфикса? Что это за раздача?
(Тем не менее, скорее всего, это указывает на проблему с оборудованием.)
РЕДАКТИРОВАТЬ: тогда его повреждение файловой системы и / или проблема с памятью. Попробуйте запустить memtest.