レンタルサーバとCGI(perl)でmoblog

  • Posted by: 相馬称
  • 2005年10月 6日 14:45
  • mt

moblog(モブログ、携帯からのメール送信でブログを更新する技術)にはこれまで、「MTでmoblogをやるならたいていはコレ」であるところの moblog.uva.ne.jp 新規ウィンドウ を利用していたが、

moblog.uva.ne.jp はひらたが個人で行っている "実験的" なサービスで、ポケットマネーで運営しています。どなたにも無料でご利用いただけますが、利用された結果については、無責任、無保証です。また、正直なところ、現在は、多忙のためあまりサポートも積極的には行っておりません。moblog gw についての個人的見解 [dh's memoranda] 新規ウィンドウ

と管理者本人も表明しているところの同サービスは(利用者の数が厖大になってきたこともあって)最近かなりサーバの動作が重たいことになっている。いちばん厄介なのは携帯からメールを送信してもそれがブログに反映されるまでだいぶ時間がかかる(場合があり、かからない場合もあって予測できない)ということだ。

メールを受け取って MT に書き込むというその処理を自前のレンタルサーバでできれば、むろんその仕組みの利用者は私ひとりであるから処理速度の面でそれに越したことはないわけで、ネットサーフィンの末に見つけた「post2blog」 新規ウィンドウ というPerlスクリプトと、その用い方を解説した「yokku::notes: 自前サーバでMoblogする方法」 新規ウィンドウ というブログ記事をもとに自前のmoblog環境を用意したのだった。

Perlスクリプトの中身はほとんど理解していないし、メールサーバに関する知識も皆目なので「このようにやってみたらできた」というだけのことだが、以下、その手順をメモ程度に。

  1. 「jm@foo: moblog スクリプト更新」 新規ウィンドウ の記事から「post2blog」のスクリプトをダウンロード。ダウンロードファイルには拡張子が付いていないので、ダウンロード後にファイル名を「post2blog.pl」としてやる。
  2. 同記事の解説をもとに、「post2blog.pl」内の設定箇所を記述し、サーバにアップ。あてずっぽうながら、パーミッションは 755 にしてみる。
  3. レンタルサーバのアカウント管理画面で moblog用に使うメールアドレスを作成。
  4. うちの場合、FTPでMailBoxディレクトリを見れるので、さきほど作成したメールアドレスのディレクトリに行き、そこにある「.mailfilter」というファイルを編集。ファイルの一番最後の行に以下の記述を追加。
    to "| /〜post2blog.plまでの絶対パス〜/post2blog.pl"
  5. 以上。あとは作成した moblog用アドレスにメールを出してみて動作チェック。

トラックバック(2)

トラックバックURL: http://web-conte.com/blue/mt-tb.cgi/70

以下のリストにある記事は、当記事 " レンタルサーバとCGI(perl)でmoblog " を参照しています :

これまではケータイからエントリーを投稿するのに、moblog.uva.ne.j...

2006年4月29日 05:53

つい先日からブログでもはじめようかとWebを見て回っていたけど モブログ用にpo...

2006年5月11日 08:33

コメント(8)

初めてコメントします。
自分も設定したのですが全く動作しません

教えてもらえればありがたいのですが(藁をもつかむ気持ち)

サーバーはさくらです
post2blog.pl と mailfilterの設定だけで動作するのでしょうか?

yoshimura at 2005年12月11日 07:57

こまかい状況はわからないので、とりあえずありがちなこととして思いつくのは、ということですが。
post2blog.pl 中の設定箇所でパスワードを入れるところ(my $password)がありますが、MT3.2以降で使う場合、ここにはユーザーパスワードではなく、APIパスワードを入れないといけません。
APIパスワードは、投稿者のプロフィール編集画面の一番下に設定欄があります。たしか、ユーザーパスワードとは異なるものにしないといけなかったはずです。(プロフィール編集画面は、管理画面のシステムメニュー>投稿者で、モブログを利用するユーザー名をクリック。この際、そのユーザーとしてログインしていないと編集画面になりません。)

うーん、このパターンが当てはまってるといいのですが。

相馬称 at 2005年12月11日 15:43

早速の回答をいただきましてありがとうございます。
指摘通り訂正しましたがうまくいきません
設定内容は
post2blog.plとmt.cgiは同じデレクトリーに入れて/home/mnbpapa/www/mt 新規にpost2blogフォルダーも作って同じデレクトリーに入れました

mailfilterは以下の追加をしました
cc "!m@yoshimura-mail.com"
to "| /home/mnbpapa/www/mt/post2blog.pl"

post2blog.plの設定は

my $MT_DIR = '/home/mnbpapa/www/mt/';
push @INC, $MT_DIR . 'extlib';
push @INC, $MT_DIR . 'lib';
}

use strict;

my $url = 'http://mnbpapa.sakura.ne.jp/mt/mt-xmlrpc.cgi'; # CGIPath + 'mt-xmlrpc.cgi'
my $blog_id = 5;
my $username = 'Melody';
my $password = 'Nelson';
my $category_id = 1;
my @categories = (2, 3, 4);
my $parse_path = '/home/mnbpapa/www/mt/post2blog';
my $ffmpeg = '/usr/local/bin/ffmpeg';
my ($maxx, $maxy) = (320, 320);

の設定で動作しますと
メール送信エラーで

/home/mnbpapa/www/mt/post2blog.plライン125でHASHリファレンスとして不確定な値を使うことができない。
554 5.3.0未知のメーラーエラー2

と出ます。

初歩のミスと思いますがご指導お願いいたします

yoshimura at 2005年12月12日 12:58

追伸
my $password = 'Nelson'; はAPIパスワードで設定しました
サーバーには追加のソフトは何も入れていませんが(もしあるのであれば)よろしいのでしょうか

yoshimura at 2005年12月12日 13:28

うーんと、書いてもらった内容とうちの場合の違いというと、.mailfilter で「cc 〜」の行を設定していない(「to 〜」の行だけにしても動作しませんか?)ということと、post2blog.pl を mt.cgi と同階層には置いていない(生でパスワードが書かれるファイルなので、もう少し安全なちがうところに置いてます)ということぐらいですかね。もうどんどんとアドバイスがしょぼくなってるわけですが、正直私の理解の範疇を超えています。

上の記事にも出てきますが、私が参照したこちらの記事が、「さくらインターネットのさくらのレンタルサーバの場合は〜」という書き方をしていて同環境なのでは?と思うのと、あきらかに私よりも詳しい方だと思いますので、尋ねる相手を変えてみてください。

お役に立てず申し訳ない。

相馬称 at 2005年12月12日 22:06

ありがとうございます
もう一度トライしてみてうまくいきましたら報告いたします。
何度もありがとうございました

yoshimura at 2005年12月13日 09:17

その折りはありがとうございました
やっと動作しました!
あれからMT4i やらMTMOBとmail-entryとmoblog.uva.ne.jp settingまで試してすべてOKでしたが
やっぱりpost2blogを使いたくて
モジュールのバージョンをできるだけ正確にインソールしたら、あっけなく動作しました

おかげでMOBLOG勉強できました

ありがとうございました。

yoshimura at 2005年12月26日 09:35

モブログの挑戦しているものなのですが、
一通り設定し、テスト投稿のため該当のメールアカウント宛にメールを送信した所、
$parse_pathで指定したディレクトリにmsg-1155357404-25290-0というディレクトリと中にmsg-25290-1.txtというファイルのセットが延々と作成され続けてしまいます。

post2blog.plを削除する事でループからは逃れられるのですが、モブログができず困っています。

考えられる原因をご教授いただけないでしょうか?

環境はさくらでMTVersion 3.31-ja です。

伊藤 at 2006年8月12日 13:40

コメントする