后缀损坏的队列:如何使用它

后缀服务器有时会将邮件放入损坏的队列中。 这些邮件从不检查,因为文件中有错误(我看到“坏的loggingtypes:43消息内容”)。 在文档中,我可以看到“无法读取或损坏的队列文件移动到这里进行检查”。

好。 我可以用postcat阅读,但是之后我该怎么办? 我可以删除它们吗? 我应该怎么做,把他们放回发送队列? 我发现某处将文件移动到maildrop,但没有任何反应。

谢谢 !

大教堂

这是一个非常奇怪的行为,我从来没有见过postfix这样做,有的时候,你有一个非常旧的后缀,或者你必须有某种硬件问题,如内存损坏或硬盘损坏。

把你的邮件放回队列,最简单的方法就是用postcatawk ,而不是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手动编辑错误消息之后,我收到了损坏的消息。 要解决这个问题,我必须使用hex编辑器okteta来编辑文件。 简而言之,消息的第一行包含5个ASCII值。 第一个和最后一个值是消息长度,第二个值是信封长度。 不确定其他值。

每条logging前面都有一个1字节的loggingtypes和一个1字节的logging长度。 这两个值都是二进制的,需要用hex编辑器进行必要的修改。

你可以使用postcat上的各种选项来检测是否有任何错误。

  postcat <msgid> postcat -b <msgid> postcat -e <msgid> postcat -v <msgid> 

要重新发送消息,我必须在“MAIL FROM:”之前立即添加“HELO myfqdn \ n”

你能提供一个后缀版本号吗? 这是什么分配?

(仍然最有可能表明硬件问题。)

编辑:那么它的文件系统损坏和/或内存问题。 尝试运行memtest。