第40回:写メールでエントリーを投稿する [ Mail2MTEntry ]
第39回では、特定カテゴリーに属するエントリーを非表示にする CatEntries プラグインについて説明しました。今回は、携帯から写メールでエントリーを投稿できるようにする Mail2MTEntry について説明していきます。
なお、写真付きエントリーを投稿するにあたって、MT4i (携帯でエントリーの投稿・編集・閲覧ができるCGI )を導入していると便利なので、第28回:Movable TypeをMoblog に対応させる を読んで、前もって、導入を済ませておいてください。
当記事を作成するにあたって、Movable Typeでつくる!最強のブログサイト を参考にさせていただきました。どうもありがとうございました。
Mail2MTEntry の動作を簡単に説明すると以下のようになります。
↓
2. 携帯電話から予め設定しておいた mail2mt.php にアクセスする
↓
3. mail2mt.php がメールサーバーからメールを取得し、エントリーとして書き込む
↓
4. 画像添付があれば、その画像を任意のフォルダに格納する
以上の流れを経て、携帯から写メールでエントリーを投稿できるようになります。中には、「めんどくせ~」と、思われた方も多いかと思います。私も最初はそう思いましたから(笑)。でも、設置さえ済ましてしまえば、その後は簡単に写真付きエントリーが投稿できるようになるので、是非、導入してみる事をお勧めいたします。
但し、Mail2MTEntry を導入するには、ちょっとした障壁があります。Mail2MTEntry を動作させるには、PEARパッケージ が必須となるからです。ロリポップ! では動作できるみたいですが動作未確認です。また、xrea で 使うのは厳しいみたいです。状況によって変わってくると思うので、各自で確認してみてください。
以下では、debian で自宅サーバーを立てている方を対象に、PEAR パッケージのインストールについて説明していきます。その他のOSやディストリを使っている方は、各自でPEARパッケージのインストール方法を調べてください。
■PEARパッケージのインストール
apt-get で PEARをインストールします。php4-cli と php4-pear がインストールされます。
但し、これだけでは不十分です。PEARをインストールし、Mail2MTEntry を設置したところ、何度試してみても XML-RPC fault (2): Invalid return payload: enabling debugging to examine incoming payload missing top level xmlrpc element というエラーが発生し、先に進めませんでした。今までPEAR なんて使った事もなかったし、原因がわからず悩む事2~3時間。
PEARパッケージに入っている XML-RPC のバージョンが古いという事に気がつきました。まず、お使いのサーバーで以下のコマンドを実行し、最新バージョンかどうか確認してみてください。左側の 1.1.0 というのが現在サーバーにインストールされているバージョンで、右側の 1.5.0 というのが最新バージョンの XML-RPC です。ここでは、リリースされている最新の XML-RPC よりバージョンが古いことが確認できます。
Available Upgrades (stable):
============================
Package Local Remote Size
・・・
・・・
XML_RPC 1.1.0 (stable) 1.5.0 (stable) 31kB
それでは、XML-RPC を最新バージョンにアップデートしてみましょう。以下コマンドを実行してください。upgrade ok と表示されたらバージョンアップ成功です。
downloading XML_RPC-1.5.0.tgz ...
Starting to download XML_RPC-1.5.0.tgz (31,619 bytes)
.....done: 31,619 bytes
upgrade ok: XML_RPC 1.5.0
これで、Mail2MTEntry を動作させるための下準備が整いました。以下では、実際に Mail2MTEntry の設置方法について説明していきます。
■Mail2MTEntry の導入
まず、Mail2MTEntry を以下のサイトからダウンロードしてきてください。ここで説明するバージョンは、現時点で最新バージョンのver.3-20050128 です(mail2mt-20050128.zip)。
BRANDONS Experimental Archives
ファイルを解凍すると、mail2mt.php というファイルがひとつだけ格納されています。このファイルを MTディレクトリ(mt-xmlrpc.cgi などがある場所) にコピーしてください。正確にいえば、必ずしも直下にコピーする必要はありません。(MTディレクトリ)/moblog/mail2mt.php などのように階層を隔てても動作します。
次に、mail2mt.php を開き、以下で説明する箇所を編集していきます。1番最初に、受信メールサーバーの設定です。自宅サーバーでメールサーバーを立てている方は、モブログ専用の新規アカウントを作成し、以下の項目を埋めてください。そうでない方は、Yahoo!メールのようなフリーメールアドレスを取得してきてください。いまどきメールの設定の仕方がわからないかたは…いませんよね?(笑)
$popHost = "xxx.kororo.jp"; //POPサーバ
$popUser = "mobile"; //POPユーザ名
$popPassword = "*********"; //POPユーザのパスワード
XML-RPCインタフェース、ユーザ定義の設定です。
$mtHost = "win.kororo.jp"; //Movable Typeの設置サーバ
$mt_xmlrpc_path = "/mt/mt-xmlrpc.cgi"; //対象となるMovable TypeのRPCサーバ
$blogid = 1; //エントリーするブログID
$mtUser = "mobile"; //書き込み可能なブログユーザー
$mtPassword = "*********"; //API パスワード
$mtImageDir = "photo/2006/"; //画像の保存場所(ブログのルートから)
まず、mtHost には、Movable Typeを設置しているドメイン名を指定します。
mt_xmlrpc_path は、やや注意が必要な項目です。mt-xmlrpc.cgi が置いてあるディレクトリを指定するだけですが、例えば、win.kororo.jp/mt/mt-xmlrpc.cgi にCGI ファイルが置いてある場合は、デフォルトの /mt/mt-xmlrpc.cgiを変更する必要はありません。それでは、win.kororo.jp/mt-xmlrpc.cgi にCGI ファイルが置いてある場合はどうでしょう。
うっかり、$mt_xmlrpc_path = "./mt-xmlrpc.cgi"; と書きたくなってしまうところですが、実際は、$mt_xmlrpc_path = "/mt-xmlrpc.cgi"; と記述してください。このように記述しないと、mail2mt.php にアクセスした時に、XML-RPC fault (5): Didn't receive 200 OK from remote server. (HTTP/1.1 400 Bad Request) というエラーメッセージが現れてしまいます。要するに、mt-xmlrpc.cgi が見つからないよ~、と怒られてしまうわけです。
blogid は、ブログのIDを入力します。管理画面のトップページで、該当するブログのタイトルの上にマウスポインタを合わせると、ブラウザのステータスバーに blog_id=1 のように表示されているので、この数字を項目に入力してください。
mtUser ですが、これは普段、MTにログインしているユーザ名を入力します。が、実際には、セキュリティ強化のために、新規にモブログ専用ユーザを作成する事を推奨します。
mtPassword は、モブログ専用ユーザのパスワードにあたりますが、普段ログインしているパスワードではなく、API パスワードというのを使用します。普段使用しているパスワードとは異なるパスワードを使用するので、当然、セキュリティがあがります。デフォルトでは、API パスワードは設定されていないので、管理画面からパスワードを設定しておきましょう。設定方法は、「メインメニュー」→「投稿者」→「モブログ専用ユーザを選択」→「APIパスワード」のところで行います。
mtImageDir は、メールで送信した写メール画像を保存するためのディレクトリです。ブログディレクトリからの相対パスで記述します。
その他にもいくつか設定項目がありますが、任意項目なので各自でお好きなように設定してください。強いて言えば、掲載許可するFromメールアドレスを設定しておくとセキュリティが強化するので、是非とも設定しておきましょう。以上で、mail2mt.php の設定は完了です。
■携帯から写メールを送信
ここまで完了したら、後は携帯電話から写真付きメールをモブログ専用のメールアドレスに送信するだけです。
■mail2mt.php にアクセスし、エントリーを投稿する
最後に、携帯電話から、mail2mt.php にアクセスしてエントリーを投稿します。ここでは、http://win.kororo.jp/mt/mail2mt.php にアクセスします。アクセスするだけで自動的にエントリーを投稿してくれるのでとても便利ですね。書き込みが完了すると、
と表示されます。このメッセージが表示されれば、正常にエントリーを投稿できているはずなので、あとは、MT4i から確認するだけです。テンプレートがたくさんあり、再構築処理に時間がかかる場合は、タイムアウトエラーが表示される事がありますが、正常に書き込みは行われているはずです。なお、メールがない状態で mail2mt.php にアクセスすると 「メールがナイヨ」 と表示されます。mail2mt.php にアクセスする度にPOPサーバーのメールが削除されていくわけです。これが、モブログ専用メールアドレスを新規に作成する理由でもあります。会社から送られてきた極秘メールとかを勝手に投稿されても困りますからね(笑)。
■複数のブログで Mail2MTEntry を利用する
では、複数のブログを所有している場合、それぞれのブログから写メールを投稿したい場合はどうするのでしょうか?勘のいい方はもうすでにお気づきですね。
そうです、mail2mt.php を複製して、それぞれのブログごとに設定しておけばいいだけですね。例えば、mail2_win.php と mail2_linux.php といった風に複数のファイルを用意しておき、winブログに投稿する時は、mail2_win.php にアクセスし、linuxブログに投稿する時は、mail2_linux.php にアクセスすれば良いのです。
ブログごとにメールアドレスを作成しておくという手もありますが、ブログが増えてくるたびにわざわざメールアドレスを作っていたのでは霧がないし、管理も煩雑してくるので、mail2mt.php を複製してブログごとに異なるアドレスにアクセスして投稿したほうが現実的でしょう。
以上、Mail2MTEntry の説明は終了です。この Mail2MTEntry と 第37回で紹介したCollect Pluginを併用すると…もうおわかりですね?そうです、トップページに写メールの写真だけを表示させる事ができるのです。夢は広がるばかりなので、是非いろいろと試してみてください♪
参考になりましたらポチっとお願いします♪