Sendmail と Postfix での .forward でプログラムに渡すときの動作の違い
Sendmail と Postfix での .forward でプログラムに渡すときの動作の違いについて今更気づいたメモ。
.forward で受信メールをこんな風に Perl とかに渡して、
|"/path/to/execute_receiving.pl"
受信したアカウント名を取り出して、あれこれと処理をするとき。
Sendmail では、プログラムからカレントディレクトリを pwd コマンドで取得すると、
以下のように、受信したアカウントの .forward がある ディレクトリ (ホームディレクトリとか)
/home/wanatabe
になるので、ここから名前 “wanatabe” が取れます。
しかし、Postfix だと、Sendmail のように受信したアカウントの .forward のある ディレクトリではなくて、
main.cf 内の queue_directory がカレントディレクトリになる。
queue_directory = /path/to/spool_dir
自分の環境ではデフォルトで /var/spool/postfix になっていた。
queue_directory = /var/spool/postfix
なので、この環境で pwd すると、
/var/spool/postfix
となってしまう。
ずっと Sendmail 使っていたので、気づかずちょっとはまった。
To: から取るなどすればよさそうなものを、なんでこういう取り方していたのか忘れたけれども。