メールサーバの転送機能.forward †Fedoraなどのディストリビューションには、メールサーバとしてPostfixが標準でインストールされていることが多いと思います。 このPostfixには*1メールを転送するための仕組みとして.forwardファイルというのがあります。このファイルに宛先を書いておけば、その宛先にメールが転送されるという仕組みです。 [fuga@www ~]$ cat ~/.forward hogehoge@foo.com [fuga@www ~]$ と書いておけば、このアカウントにメールが来たらhogehoge@foo.com にメールが転送される、ってことですね。 で、この機構なのですがパイプを使って「転送先としてプログラムを指定する」ことができます。具体的には [fuga@www ~]$ cat ~/.forward "| /home/fuga/test.pl" [fuga@www ~]$ って書くことで、 test.pl に標準入力としてメールの内容が入ってくる、というわけです。これは結構便利で、うまく使えばメールの集計とか、スパムフィルタとかに応用できそうです。 パイプは普通のUnixの機能なので "| [メールの中身をいろいろチェックする処理] | /home/fuga/test2.pl" とかして上の処理で「標準入力からメール情報を読み取って色々加工して、標準出力に出力する」などをすればフィルタ処理の完成です。 ちなみにここまで書いといて、処理をかませた後、さらにメールアドレスに転送するってどうやるんですかね??誰かおしえてくださーい。 post2blogとかに応用するとか †たとえばpost2blog.plなどは、.forwardを使ってメールからXML-RPCするプログラムに処理を渡すわけですが、post2blog.plにメールを渡す前にプログラムを一個かませて、ソースIPやメーラなどをチェックして特定の条件を満たすメールだけ取り込んであげる、などとすればセキュリティも向上しそうです*2。 ちなみに †ちなみにこの.forwardですが、複数箇所にメールを転送したい場合は、改行して複数のメールアドレスを書けばOKです。同じ考えで、複数の処理を行いたい場合は、 [fuga@www ~]$ cat ~/.forward "| /home/fuga/test.pl" "| /home/fuga/test2.pl" などと書いておけばOKです。 関連リンク †
この記事は
現在のアクセス:23251 |