二重バウンスメールの処理

二重バウンスメールは postmaster (すなわち epmail メンバ)に配送されるように なっている.その際,メールの本文のみが自動的に削除されるようにする.


~epmail/.qmail の編集

~epmail/.qmail の二行目に以下を一行で追加する

| condredirect epmail-wbounce /home/epmail/bin/check_wbounce.pl

condredirect は配送されたメッセージに対してプログラム(ここでは check_wbounce.pl)を実行し,プログラムが 0 を返した場合は指定された アドレス(ここでは epmail-wbounce) に転送するコマンドである. check_wbounce.pl を以下のように作成し,二重バウンスメールが 来た場合 0 を返すようにする.パーミッションは 755.

#!/usr/bin/perl
foreach(STDIN) {
  if(/bounce bounced/) {
     exit 0;
  }
}
exit -1;

~epmail/.qmail-wbounce の編集

~epmail/.qmail-wbounce を以下のように編集する(一行で).パーミッションは600. これにより,epmail-wbounce に 配送されたメッセージは以下に述べる rmcontents.pl によって本文のみ 削除され To: postmaster は To: epmail-member に書き換えられる. 本文が削除されたメールは qmail-inject によって epmail-member に 配送される.

| /home/epmail/bin/rmcontents.pl|/var/qmail/bin/qmail-inject

/home/epmail/bin/rmcontents.pl を以下のように作成する.パーミッションは 755.

#!/usr/bin/perl
foreach (STDIN) {
    s/^To: postmaster/To: epmail-member/; 
    $string = $string . $_;
}
@list = split(/--- Below this line is a copy of the message.\n/, $string);

@temp = split(/\n\n/, $list[1]);

unshift(@temp, $list[0]);

@temp = ($temp[0],"--- Below this line is a copy of the message.\n",
            $temp[1],"\n\n--- The contents below have been deleted by ~epmail/bin/rmcontents.pl !\n");

print @temp ;

本文が削除された部分には "--- The contents below have been deleted by ~epmail/ bin/rmcontents.pl !" と表示される.




最終更新日: 2001/06/23(田中伸) Copyright © 2001 epcore