#author("2022-07-15T06:07:19+00:00","","") #author("2024-02-10T07:07:38+00:00","","") // 下階層用テンプレート #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にはちょこちょこっと修正させてもらって、入力が○○だったら処理しない、みたいな。))。 **ちなみに [#xa3c7a5d] ちなみにこの.forwardですが、複数箇所にメールを転送したい場合は、改行して複数のメールアドレスを書けばOKです。同じ考えで、複数の処理を行いたい場合は、 [fuga@www ~]$ cat ~/.forward "| /home/fuga/test.pl" "| /home/fuga/test2.pl" などと書いておけばOKです。 **関連リンク [#jc7e8c43] -[[Servletでメール処理>http://www.utilz.jp/wiki/ServletMail]] -[[.forward で受信メールをどうこうする - IT戦記>http://d.hatena.ne.jp/amachang/20080108/1199805535]] MIME::Parserをつかったメールの処理が書いてあります。 -[[スパムメール対策>http://www.skucky.com/tips_postfix.html]] -[[メール到着で自動的にCGIを実行 - 山崎はるかのメモ>http://www.nda.co.jp/memo/mforward.html]] -[[メール受信でプログラムを起動 MOYO Laboratory>http://moyolab.blog57.fc2.com/blog-entry-48.html]] -[[@IT:Java TIPS -- JavaMailでメール送信アプリを作る>http://www.atmarkit.co.jp/fjava/javatips/123java022.html]] ---- この記事は #vote(おもしろかった[9],そうでもない[0]) #vote(おもしろかった[10],そうでもない[0]) - /home/fuga/test2.plのロジックでメールを送信するとか、test2.plは正常な結果を標準出力へ出力してpostfixに渡したらどうですか? -- [[通りすがり]] &new{2010-12-06 (月) 17:14:43}; #comment #topicpath SIZE(10){現在のアクセス:&counter;}