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: から取るなどすればよさそうなものを、なんでこういう取り方していたのか忘れたけれども。

2008年 3月 12日 | Posted in Movie
タグ:
コメントは終了しています。