// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
#contents


**メールサーバの転送機能.forward [#o0a582c9]
Fedoraなどのディストリビューションには、メールサーバとして[[Postfix>http://www.postfix-jp.info/]]が標準でインストールされていることが多いと思います。

このPostfixには((sendmailとかもですね))メールを転送するための仕組みとして.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とかに応用するとか [#ffe7c5ed]
たとえば[[post2blog.pl>Blog/Moblog環境を構築する]]などは、.forwardを使ってメールからXML-RPCするプログラムに処理を渡すわけですが、post2blog.plにメールを渡す前にプログラムを一個かませて、ソースIPやメーラなどをチェックして特定の条件を満たすメールだけ取り込んであげる、などとすればセキュリティも向上しそうです((JavaMailとか使って、Javaでフィルタ処理書いてみるかなー。post2blog.plにはちょこちょこっと修正させてもらって、入力が○○だったら処理しない、みたいな。))



----
この記事は
#vote(おもしろかった,そうでもない)

#comment
#topicpath


SIZE(10){現在のアクセス:&counter;}


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS