mimedefangのエラー
sendmailのmilterとしてmimedefangをつかってSpamAassasinを組み合わせてスパムフィルタをしてるんですが、まれにエラーをはいてメールをリターンしていることに気がつきました。ログはこんなの。
Jun 12 05:29:47 hoge mimedefang[22954]: [ID 738095 mail.warning] mxxxxxxxxxxxxx: smfi_chgheader returned MI_FAILURE Jun 12 05:29:47 hoge mimedefang[22954]: [ID 738095 mail.warning] mxxxxxxxxxxxxx: smfi_addheader returned MI_FAILURE Jun 12 05:31:37 hoge mimedefang[22954]: [ID 738095 mail.warning] mxxxxxxxxxxxxx: smfi_chgheader returned MI_FAILURE Jun 12 05:31:37 hoge mimedefang[22954]: [ID 738095 mail.warning] mxxxxxxxxxxxxx: smfi_addheader returned MI_FAILURE
最初は単位時間あたりの到着メール数が多くてmimedefangが対処しきれないせいかと思っていたのですが、どうも違うみたい。mimedefang.cのソースをみるとこのエラーはメールになにかヘッダを追加または、変更しようとしてそこでエラーになっている。たとえばこんなところ。
case 'M': if (!rejecting) { /* New content-type header */ percent_decode(rptr+1); if (strlen(rptr+1) > 0) { MD_SMFI_TRY(smfi_chgheader, (ctx, "Content-Type", 1, rptr+1)); } MD_SMFI_TRY(smfi_chgheader, (ctx, "MIME-Version", 1, "1.0")); } break;
このMD_SMFI_TRYマクロのところです。
sendmailからmimedefangへの通信はちゃんとできていて、mimedefangがなんらかのエラーをはいてそこでsendmailがメールをエラーリターンしているみたい。その時間帯にCPUが大忙しだったり、メモリが足りなくなってるってことはないみたい。
とりあえずはsendmailでmilterを読んでいる設定のところでmimedefangがエラー返したら、無視してSMTPコネクションをそのまま継続するように。
(変更前) Xmimedefang, S=:/var/spool/MIMEDefang/mimedefang.sock,F=T,T=S:180s;R:240s;E:5m (変更後) Xmimedefang, S=:/var/spool/MIMEDefang/mimedefang.sock,T=S:180s;R:240s;E:5m
Fフラグの意味は
- 作者: ブライアンコステールス,エリックオールマン,Bryan Costales,Eric Allman,中村素典,林秀幸
- 出版社/メーカー: オライリージャパン
- 発売日: 2004/04
- メディア: 単行本
- 購入: 3人 クリック: 11回
- この商品を含むブログ (5件) を見る