Sendmailは通常の状態ですと、WEB上から送信されるメールに
関しては、そのプログラムのユーザー権限にて送信しますので、
wwwユーザーで動作していれば、www宛に返ってきます。
このバウンスメールを任意の箇所に戻すようにする。
上記の現象を防ぐためには、プログラムで下記の対応をする必要
があります。
@エラーメールの送信先を、Errors-To: フィールドにて指定する方法。
例)
---------------------------------
$mailheader = <
To: info@hoge.com
Errors-To: kurihara@hoge.com
Subject: WEBメール
END_OF_HEADER
----------------------------------
このフィールドは、非標準フィールドですが、RFC2076にて情報が記載
されています。ただ、このフィールドは非標準ですので最近のMTAでは
サポートされず、無視される傾向にあるので、廃止の方向です。
お勧めできません。
ASendmailに対しての送信コマンドに-fオプションをつけて、
envelope-fromを設定する。
例)sendmail -f info@hogehoge.com
例えば、perlで処理する場合ですと、下記のような感じが良いと思います。
プログラマーでないので、間違いがあるかもしれませんが、参考程度に・・
if ( open ( MAIL, "|sendmail -t -f" ) ) {
print MAIL "To:${送信先}\n";
print MAIL "From:${送信元}\n";
print MAIL "Envelope-From :${エラーメール返信先}\n";
print MAIL "Subject:${表題}\n\n";
print MAIL "${本文}\n\n";
close ( MAIL );
return ( 0 );
} else {
return ( False );
}
MTAはエラーメールをバウンスさせるときenvelope-from は <> にするので、エラーメールがループする事はありません。