Top / Blog / Moblog環境を構築する

Moblogとは

Moblogというのは、携帯メールや普通のメールソフトからBlogを更新するためのサービスです。仕組みはあるメールサーバがあって、そこにメールが着信したらBlogサイトに更新のためのXML-RPCリクエストを発行するというモノですね。XML-RPCを発行するためのメールサーバや、リクエストを発行するというのはサービスとして色々提供されていて、有名どころでは

なんかがあります。

ちょっとこれらのサイトを利用させていただいていたのですが、自前のサーバにメールサーバを稼働させたことをきっかけに、自分でMoblogサービスを構築してみようと思いました。以下そのメモです。

つくってみた環境

環境としては、自前のメールサーバにMoblog用のアカウントを作成し、そのメールサーバから、自前のWEBサーバにXML-RPCを投げるって感じです。メールサーバにメールが到着したらXML-RPC発行するって処理は、jm@foo: moblogにpost2blog.plというすばらしいスクリプトが配布されていましたので、それを利用させていただいています。

メールアカウントの作成

まずはメールアカウントを作成します。メールアカウントは、ばれてしまうとスパム投稿されてしまうため、わかりにくいアドレスにする必要があります。

useradd hogehoge -g postfix

アカウントを作成したので、メールが送受信できることを確認しておきましょう。

MIME::Parserのインストール

post2blog.plを使用してみたらうちの環境はどうもMIME::Parser がインストールされていないらしくエラーになってしまいました。つうことでMIME::Parserをインストールします。

yum install perl-CPAN
perl -MCPAN -e shell

cpan shell -- CPAN exploration and modules installation (v1.7602)
ReadLine support available (try 'install Bundle::CPAN')

cpan> install MIME::Parser

これでインストールされました。

post2blog.plのインストール

post2blog.plのインストールと環境設定を行います。jm@foo: moblogよりpost2blog.plをダウンロードし ~/hogehoge *1に配置しておきます。

次に環境設定です。post2blog.plを開いて、jm@foo: moblog にあるとおりに設定しましょう。

メールが来たら、post2blog.plを起動する

環境は整いました。残りは、メールが来たらpost2blog.plを実行したいのですが、そこはメールサーバにやってもらいます。具体的にはさきのアカウントのホームディレクトリに

.forward

というファイルを作成します。これはメールを転送するときに使うと思ってたのですが、プログラムを起動することもできるんですね。.forwardの内容は以下の通りです

"| /home/hogehoge/post2blog.pl"

このようにパイプしてpost2blog.plへのフルパスを書いておけば良いです。

セットアップは以上です。実際にさきのメールアドレスにメールを送信すると、メールを受信したメールサーバが.forwardによって処理をpost2blog.plに渡し、post2blog.plがXML-RPCを発行して指定したBlogを更新してくれます。

実際これだけで、単純なメールの投稿や、写真を添付したメール投稿(添付した写真はアップロードされて、さらにimgタグなどが追加されるなどが正しくBlogに更新されることを確認できました。

このスクリプト、すげー。作者様に感謝ですね。

GPS情報付の写真を投稿したら、GoogleMap?へのリンクを作る。

これについてはPerlのスクリプトでやるんでなく、MovableType?のプラグインとして機能を実装されているようですね。

jm@foo: Movable Type用 位置プラグイン

関連リンク

mt-xmlrpc.cgiの仕様ってあんまりネットに説明がないですねー、ちょっと場違いですがここにリンクまとめておきます


この記事は

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

Top / Blog / Moblog環境を構築する

現在のアクセス:6801


*1 アカウント名

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-12-06 (日) 16:41:21 (5254d)