Top / 自作ツール / Moblog環境のメールフィルタ

Blog/Moblog環境を構築するのエントリにもありますとおり、Moblogの環境を自前サーバにセットアップしました。が、これだとMoblogの投稿を受信するメールアドレスが分かってしまうと誰でも投稿できる状態なので、セキュリティ上どうにかしなくちゃなと思っていました。

ということで、Moblogに投稿を行うメールの送信者で投稿をフィルタするプログラムを作ってみました。このフィルタを用いることで、あらかじめ設定したメールアドレスからの投稿のみを受付け、あとのアドレスからの投稿は拒否することができるようになります。

ダウンロード

よりダウンロードしてください。解凍して、post2blog.pl(Moblogの受信プログラム)を起動するアカウントがアクセスできるディレクトリにモジュールを解凍しておいてください。

関連モジュールのダウンロード、インストール

受信したメールの解析にはJavaMailを使用しています。従って、JavaMail APIJavaBeans Activation FrameworkよりJavaMail? API(javamail-1_4_1.zip)とJavaBeans? Activation Framework(jaf-1_1_1.zip)をダウンロードします。それらを解凍してできる

  • activation.jar
  • dsn.jar
  • imap.jar
  • mail.jar
  • mailapi.jar
  • pop3.jar
  • smtp.jar

をlibディレクトリに配置してください。以上で関連モジュールのセットアップは完了です。

、、、あ、いまさらですが、Javaを用いてますのでjavaコマンドが実行できるようにJavaをインストールしておいてください。

インストール

通常Moblogの環境をセットアップすると、メール受信アカウントの.forwardに

"| /home/hogehoge/post2blog.pl"

などと書くと思いますが、ここを

"| /home/hogehoge/MailFilter/main.sh"

などとmain.shに標準入力で 変更します。main.shよりメールをフィルタするJavaプログラムが呼ばれるわけですね。またそのsh内で、post2blog.plの呼出までやってしまうので、main.shの37行目あたりの呼出の記述を

echo -en "$tmp" | /home/hogehoge/post2blog.pl

などとpost2blog.plのパスに書き換えておきます。ようするにメール受信してpost2blog.plに渡される処理のあいだに、main.shをかますような感じで設定します。

環境設定

libディレクトリには必要に応じて以下のファイルを配置してください。

mail.properties
設定していないメールアドレスから投稿が行われて投稿を遮断したときなどに、メールにて管理者等に通知を行うことができます。メール通知を行う場合のメールサーバの情報を記述します。このファイルがなかった場合はメール送信を行いません。
whitelist.properties
nu.mine.kino.mail.impl.AddressFilter クラスが参照するメールアドレスのホワイトリストです。ここに書いてあるメールアドレスからの投稿は遮断しません。このファイルがなかった場合は特に遮断処理を行いませんのでご注意ください。
filter.properties
フィルタ処理が記述されているフィルタの実装クラスを指定します。ここで指定したフィルタが実行されます。ファイルがなかった場合などはなんのフィルタも呼び出されません。デフォルトで送信元をチェックするフィルタが指定されているので、通常は編集の必要はありません。たとえばメーラの種別で投稿をフィルタするとか、独自にフィルタクラスを作成した場合、ココに記述することで独自のフィルタ処理を組み込むことができるようになります。

ライセンス

ソースコード取得

TIPS

独自のフィルタ処理を組み込む

関連リンク


この記事は

選択肢 投票
おもしろかった 0  
そうでもない 0  

Top / 自作ツール / Moblog環境のメールフィルタ

現在のアクセス:6609


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-04-29 (水) 02:00:44 (3126d)