
メールを送るだけでBlogを更新するのって何気に難しいですな。一時期moblogの話を色々なところで聞いたので、それほど苦労せずにMTに組み込めたりするのかと思っておりました。
しかしどうやら暗雲が。とりあえず"moblog"で検索してみると出てくるのはサービスばかり。もちろんきちんとしてるし信頼性もあるし手軽でいいのですが、出来れば自前で全てまかないたいという思いが。
というわけで大したWebプログラミングの知識も無く設置してみようと言う、ドキュメンタリーエントリーです。本当に今から悩みながら書くので、どうなるか分かりません('A`)
明日には無かったことになってるかも。
まずmoblogはどんなもんかと調べると、伊藤譲一氏によると、moblogはmail2entryというもので成り立っているらしい。Aron Atkins氏作成らしいですが、この記事からダウンロードできます。
Joi Ito's Web: mail2entry moblog code update
これが、基本的にサーバに入れて動かすもの。我が家のVineに入れられないこともないのでしょうが、そこにたどり着くまでに自分のスキルではどえらく時間がかかりそうなのでナシ…。インストールされた方も結構おられるので、将来のためにメモメモ。
#Bell's Memorandum: mail2entry
#matsubokkuri: mail2entry
さて、どうしたものかと検索していると、どうやらWEB-YATAIさんの方で、cgi版が出ている模様。さっそくこれを使わせてもらうことに。
とは言っても、そのまま使っていてもいつまでたってもヘボのままなので、それだけはどうしても嫌なのでソースも読んでいく事に。教材ですなー。
何ていうかみんなゴリゴリ書ける人のブログばっかりだから、たまにゃこういったショボいのもいいのでは…検索すると凄い人たちばっかりだもんよ('A`)キガヒケル
ちなみに自分のスキルは、C言語をやろうと発奮するも『明解C言語』と『ポインタ完全制覇』をやってなんか満足してコードも書かずにいて振り出しに戻り、その後、もう一度発奮してPerlやろうと、O'REILLYの『初めてのPerl』『プログラミングPerl』をなんとか消化した程度です。
Moduleとかの知識は『Blog Hacks』読みながら得たものくらいです。
未来検索の結果を正規表現やらでRSSにしてパースして、Javascriptにしてサイトに表示する位が限界です。さらに、サーバは基本的な操作位しか出来ない。はてさて、どこまでやる気が持つか…('A`)
ひとまず先ほどのWEB-YATAIさんからソースをダウンロード。
印刷して斜め読みした感じでは、対象のPOPサーバにあるメールをModuleで定期的に取得して、それをパース。さらにそれを目標のMTにエントリーとしてPOSTする、というもののようです(本当に読みながら書いているので違うかも)
使うModuleが結構あります。Net::POP3; MIME::Parser; MIME::WordDecoder; Image::Size; Jcode; CGI File::Copy; MT; MT::Entry; MT::Blog; MT::Image;、と10個以上です。
この中で良く分からんものをまずは調べておくことにします。
とりあえず POP3がPost Office Protocol 3だと今初めて知った('A`)
perldocがNet::POP3 - POP3(Post Office Protocol 3)クライアントクラス (RFC1939)にあるので、とりあえず問題なさげ。簡単なサンプルはモジュールを使って POP3 クライアントを作ってみようにあります。しかしこんな簡単にCGIからPOPとかいじれるのね…もっと、こう、なんか凄いことになっているイメージが。0と1がたくさん出てくるんですよ、えぇえぇ。
しかし、モジュールの概要を調べる前に、ひとまずPOP3そのものについて知っておかないと、痒いところに手が届かない感じで気持ち悪くて仕方ないです。
なので、調べてみる。とりあえずNet::POP3のソースを見てみるも、イマイチどうやってPOP3サーバと通信してるのか分からない(と言うかModuleのソースがよく理解できない。Classとか完全に忘れている)さかのぼってNet::Netrcを見てもよう分からんですわ。
そんなこんなで、モチベーションが急激に右肩下がりですが気を取り直してPOP3サーバの仕組みから探ってみることに。
すると、@ITに魅力的な記事が。さすが。その記事とは、インターネット・プロトコル連載のPOP3の回。
#ラスト・ワン・ホップ プロトコル「POP3」
図1の動作模式図は分かりやすい…POP3もFTPやらHTTPやらと同じで、コマンドのやり取りで成り立ってるのか…。つまり、これを実装すればCGIでPOP3クライアントが出来る、と。大まかな動作の流れが分かったので、これで何とか吸収できそうな予感。
さて、モジュールのメソッドなどは、具体的にはこんな感じのようです。
#目的のPOPサーバにセッションを張る
$pop = Net::POP3->new($hostname) ;
#POP3で言う、USERとPASSコマンドでログイン認証を行う。
# Net::POP3でも、userメソッドとpassメソッドがそれに当たる。
$pop->user($username);
$auth_check = $pop->pass($password);
#LISTコマンドで取得できる
# 1 1142
# 2 1102
#みたいな、メッセージ番号とサイズのリストは、Net::POP3だと、
#同じくlistというメソッドで得られる。
#直接引数にメッセージ番号を渡せば、そのメールのサイズが返る。
$msg = $pop->list($msg_num)
#引数なしだと、keyがメッセージ番号、valueがサイズのハッシュへのリファレンスが返る。
$msg_hash = $pop->list();
#RETRコマンドは、 メッセージ番号を引数として、メッセージのダウンロードを行う。削除はしない。
#Net::POP3だと、getメソッド。メッセージのテキストが入った配列へのリファレンスで来る。
$msg_content_ref = $pop->get($msg_num);
#DELE メッセージ番号で、メッセージを消去
#Net::POP3では、同じくdeleteメソッド。引数にメッセージ番号。
$msg_flag = $pop->delete($msg_num);
#QUITでセッション終了。
#Net::POP3でもquitメソッド。
$msg_flag = $pop->quit();
コマンド名とメソッド名が大体同じで助かるところです。なんとかOK。
しかしPOP3だけでずいぶん時間を食いました。
でも、仕組みがそれなりに理解できたのでさっぱりさっぱり。
土台がどうなってるのか分からないまま上に家を建てるのが、どうにも気持ち悪い性質でして。@ITのプロトコル連載には、他にもHTTPやらMIME、SMTP、FTPもあります。読まねば。何はともあれ@ITの中の人に感謝。
さて、続いてMIME::Parserです。何と言うか、すぐに@ITのさっきのMIMEのところを読むべきか…。
読みました。分かりやすい。
#しかし、何か目的もなしに読むと頭に入らない罠。
MIME::Parserは日本語ドキュメントがないので原文。
search.cpan.org: MIME::Parser - experimental class for parsing MIME streams
しかし、何気に今MIME::Parserで検索すると九割五分以上moblogの記事がひっかかる。
MIME::Parserは、MIME::Toolsのサブクラスみたいです(送信とかするにはそっちが必要。)
#MIME-Toolsの概要はsearch.cpan.org: MIME-toolsから。以下も同。
MIME::Parserは、メールデータをMIME::Entityクラスに変換し、様々なメソッドを通じて操作できるようにするために存在するようです。こいつを通せば、とても扱いやすくなり、メールのヘッダ情報とか本文とかがメソッド一発で簡単に取り出せるようになります。凄い。
my $parser = new MIME::Parser;
#データが "in core"(メモリ内ってことでいいのだろうか)の場合の読み込み方法
$entity = $parser->parse_data($message);
#ファイルハンドルなどのストリームから入力する場合の読み込み方法
$entity = $parser->parse(\*STDIN);
#ファイルから入力するときの読み込み方法
$entity = $parser->parse_open("/some/file.msg");
入力のバリエーションとパースはこんな感じ。RSSを作るのに使った、XML::Parserに似ていてちょっと安心。同じパーサーだから当たり前か('A`)
続いて、パースしたものをどこのディレクトリに展開するかとかどういう名前をつけるかとかそういったセッティングが必要らしい。
#メモリ上に展開する。ただ、メールを装った悪意あるファイルかもしれないので処理に注意。
$parser->output_to_core(1);
#出力ディレクトリを設定する。各メッセージごとに1フォルダ割り当て
$parser->output_under("/tmp");
#出力ディレクトリを設定する
$parser->output_dir("/tmp");
#拡張子を指定する
$parser->output_prefix("msg");
そしてエラー処理について。
#エラーをキャッチしたら
eval { $entity = $parser->parse(\*STDIN) };
#エラー情報を取得( $parser->results )
#最後に処理していたメールのヘッダを得る。
if ($@) {
$results = $parser->results;
$decapitated = $parser->last_head;
}
後オプションとか色々ありましたが、MIME:Parserはこんな感じなのだろうか。イマイチピンときてない。だがとりあえずNet::POP3; MIME::Parser;と最後にMIME::WordDecoder;で、ひとまとまりな気がするのでMIME::WordDecoderを見てから悩むことにしますか…('A`)
Cpanのドキュメントはsearch.cpan.org: MIME::WordDecoder - decode RFC-1522 encoded words to a local representationから。
これも、さっきのMIME::Toolsのサブクラス。MIME::Wordの方に実例があった。
#IME::Words - deal with RFC-1522 encoded words
たとえば下のようなものがあって、
From: =?US-ASCII?Q?Keith_Moore?= <moore@cs.utk.edu>
To: =?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@dkuug.dk>
CC: =?ISO-8859-1?Q?Andr=E9_?= Pirard <PIRARD@vm1.ulg.ac.be>
Subject: =?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=
=?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=
=?US-ASCII?Q?.._cool!?=
こいつにWord::Decorderをかますとこうなるらしい
From: Keith Moore
To: Keld J/orn Simonsen
CC: Andr'e Pirard
Subject: If you can read this you understand the example... cool!
…Subjectの中の人は大変だ('A`)
ギャル文字どころじゃないぞ。変換されてるところがあったり無かったり。readは駄目でcoolは素通しなのかよ。
ひとまずメソッドとしては
$enc = '=?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?=
@decoded_enc = decode_mimewords($enc) ;
みたいにするらしい。配列に入れるのは、返り値が @decoded_enc[0]が[DATA]で、@decoded_enc[1]が[CAHRSET]だからだそうだ。
うーむ。まとめると、NET::POP3でPOP3サーバに接続してメールデータを得て、それをMIME::ParserでパースしてMIME::Entityにする。そしてMIME::WordDecoderで各文字コードにデコード、という感じなのかな…。うぅむ。
なんか文字コードとMIME変換とマルチバイトと、そのあたりの変換がかなりの勢いでごっちゃになっているような気がします。その辺が一番の混乱のもとのような。
そんな感じで机に突っ伏していたら河馬屋二千年堂さんに、ActivePerlでメールを受けるという記事が。シンプルにこういたモジュールを使った、POP3へのアクセススクリプトが載っていました。
ありがたやありがたや…やっぱりサンプルはありがたいですな…。というわけで、まず先にこっちのソースを読みながらmoblogへの基礎固めをする予定です。
次回はMoblog設置ドキュメンタリー[その2]::[7korobi8oki.com]です。
しかし、Google 検索: MIMEは凄いな。
このエントリーのトラックバックURL:
http://www.7korobi8oki.com/mt/mt-tb.cgi/10
» mother son incest from mother son incest
mother son incest [続きを読む]
トラックバック時刻: 2006年07月01日 04:12
» order vicodin from order vicodin
order vicodin
[続きを読む]
トラックバック時刻: 2006年11月10日 04:27
» buy tramadol from buy tramadol
Trackback [続きを読む]
トラックバック時刻: 2006年12月09日 19:18
» IeriWinner_75 from IeriWinner_75
HI! I've have similar topic at my blog! Please check it..
Thanks.
[url=http://... [続きを読む]
トラックバック時刻: 2006年12月10日 08:03
» Anime tranny from Anime tranny
I'm agree with you but imho you should think about that problem... Anime tranny [続きを読む]
トラックバック時刻: 2006年12月12日 01:59
» Forced girl japanese pic video from Forced girl japanese pic video
I'm agree with you but imho you should think about that problem... Forced girl j... [続きを読む]
トラックバック時刻: 2006年12月12日 03:00
» Bomis com from Bomis com
I'm agree with you but imho you should think about that problem... Bomis com [続きを読む]
トラックバック時刻: 2006年12月12日 05:05
» Old pussy wrinkly from Old pussy wrinkly
I'm agree with you, i think... Old pussy wrinkly ... [続きを読む]
トラックバック時刻: 2006年12月12日 06:00
» Flash girl young from Flash girl young
Flash girl young [続きを読む]
トラックバック時刻: 2006年12月25日 03:32
» fuck my ass from fuck my ass
Trackback [続きを読む]
トラックバック時刻: 2007年01月02日 20:43
» rape comics fun from rape comics crazy
rape comics [続きを読む]
トラックバック時刻: 2007年02月14日 01:41
» shemale orgy from shemale orgy
shemale orgy [続きを読む]
トラックバック時刻: 2007年04月30日 02:58
» black tranny from black tranny
black tranny [続きを読む]
トラックバック時刻: 2007年05月01日 02:29
» ニューハーフ近親相姦 水朝美樹 from ニューハーフ近親相姦 水朝美樹
詳しくは...... [続きを読む]
トラックバック時刻: 2007年05月31日 08:23
» She Male Jam 4 from She Male Jam 4
詳しくは...... [続きを読む]
トラックバック時刻: 2007年05月31日 15:55
» SHEMALE ADVENTURE Vol.2 from SHEMALE ADVENTURE Vol.2
荅潟...... [続きを読む]
トラックバック時刻: 2007年05月31日 23:08
» ニューハーフ渚ちゃんを無理やり犯っちゃってザーメンぶっかけました! from ニューハーフ渚ちゃんを無理やり犯っちゃってザーメンぶっかけました!
[続きを読む]
トラックバック時刻: 2007年06月01日 11:02
» タイランドでニューハーフをゲット!!2 from タイランドでニューハーフをゲット!!2
詳しくは...... [続きを読む]
トラックバック時刻: 2007年06月01日 17:03
» ニューハーフ組曲 Suite 2 from ニューハーフ組曲 Suite 2
詳しくは...... [続きを読む]
トラックバック時刻: 2007年06月01日 19:13
» 素人熟女VSニューハーフ 中出しナンパ from 素人熟女VSニューハーフ 中出しナンパ
詳しくは...... [続きを読む]
トラックバック時刻: 2007年06月01日 21:41
» ナンパ教材 from ナンパの裏技ナンパ塾
ナンパ教材とは女性をひっかけるための教科書です。 女性にもてたい人が読む参考書で... [続きを読む]
トラックバック時刻: 2007年10月11日 12:16
» 朝ナンパ from ナンパの裏技ナンパ塾
朝ナンパとは朝に女性にひっかける事です。 例えば通勤途中の電車でいつも見かける可... [続きを読む]
トラックバック時刻: 2007年10月12日 14:06
» 愛する二人のために・・・ from 愛する二人のために カート用
1173人とエッチした元風俗嬢が明かす、女を簡単にイカせる男の秘密のテクニックとは?
こんにちは、タイトルは凄いんですが??
内容はいたって真剣! 真剣です... [続きを読む]
トラックバック時刻: 2007年10月14日 12:18
» ナンパテキスト from ナンパの裏技ナンパ塾
ナンパテキストについて質問をいただく事がありますので、解答させていただきます。 ... [続きを読む]
トラックバック時刻: 2007年10月14日 15:06
» 戸田恵梨香◎トイレ盗撮映像【デスノート編】 from 戸田恵梨香◎トイレ盗撮映像【デスノート編】
今、注目の若手清純派女優の戸田恵梨香だが、過去には制服姿やスクール水着の写真集「... [続きを読む]
トラックバック時刻: 2007年10月16日 20:26
» 風俗ナンパ from ナンパの裏技ナンパ塾
風俗ナンパとはソープ嬢やヘルス嬢のような風俗嬢をひっかける行為です。 風俗嬢? ... [続きを読む]
トラックバック時刻: 2007年11月04日 13:38
» モテル男になれる恋愛レッスン登場!! from タケちゃんの気ままに生きる
もてたい男の人必見ですよ。数々の恋愛術がありましたので、またか…って思われるかもしれませんよね。でも、コレはちょっと違いますよ。な、な、なんと、人気の現役のキャ... [続きを読む]
トラックバック時刻: 2007年11月05日 11:58
» ブログのあの機能を有効利用して魅力的な記事を書く from ネットで稼いで楽しませんか???あなた働きすぎですよ??
ブログのあの機能を有効利用して魅力的な記事を書く。
アフィリエイトで稼ぐ空手家まっきーです。
昨日の記事に関しまして、
本音のご意見・... [続きを読む]
トラックバック時刻: 2007年11月11日 23:27
» 矢口真里★乱交パーティの映像が流出!参加者の中には大物アイドルがズラリ from 矢口真里★乱交パーティの映像が流出!参加者の中には大物アイドルがズラリ
矢口真里には小栗旬やホスト風のヒモ状態の彼氏や元ジャニーズJrで現在は劇団に所属... [続きを読む]
トラックバック時刻: 2007年11月19日 19:19
» ナンパした女 from ナンパの裏技ナンパ塾
ナンパした女をたくさんいます。 ジャンルも様々です。 OL、看護婦、美容師、ギャ... [続きを読む]
トラックバック時刻: 2007年12月03日 12:37
» 乳首・乳輪見えまくり!リア・ディゾン!! from 乳首・乳輪見えまくり!リア・ディゾン!!
乳首・乳輪見えまくり!リア・ディゾン!! . さぁ、今回はリア・ディゾンちゃん... [続きを読む]
トラックバック時刻: 2007年12月03日 19:22
» 中澤裕子&モーニング娘。全盛期メンバー対談 from 無料レポート館
この会話や人間関係から何故モー娘。が凄かったのか見えてくるはず。。。src= [続きを読む]
トラックバック時刻: 2007年12月10日 18:51
» CDの売上げだけで生活するストリートミュージシャ from 【ちぃーこのそれはいえません??Love is the key??】
11月17日からストリートミュージシャンの【m-puzzle】と【SUAL拳】が日本各地でストリートライブをして
CDの売り上げだけで生活するラオラオストリー... [続きを読む]
トラックバック時刻: 2007年12月12日 13:05
» TV東京の給与明細出演アイドル尾崎ナナ★が過去に過激DVDに出演発覚!事務所を解雇 from TV東京の給与明細出演アイドル尾崎ナナ★が過去に過激DVDに出演発覚!事務所を解雇
TV東京の給与明細で活躍?中の尾崎ナナが過去に相本あきこ名義でかなり過激なDV... [続きを読む]
トラックバック時刻: 2007年12月12日 16:37
» 堀北真希vs新垣結衣☆堀北真希が勝利した理由☆ from 堀北真希vs新垣結衣☆堀北真希が勝利した理由☆
VS [続きを読む]
トラックバック時刻: 2007年12月13日 01:10
» 沢尻エリカ◆高額取引されている流出DVD動画完全保存版を期間限定で大公開!! from 沢尻エリカ◆高額取引されている流出DVD動画完全保存版を期間限定で大公開!!
この流出DVDの内容ですが!!確かにウェーブのかかった髪にこのスタイル!!なか... [続きを読む]
トラックバック時刻: 2007年12月13日 13:37
» 9年間で1032人の女を抱いた32歳の天才ナンパ師 from もてる方法・ナンパ秘訣・もてる男の恋愛術
23歳まで童貞、女性と会話する事さえ苦手だった岡田尚也32歳が女の全てを完全に理解し、9年間で1032人の女を抱いた。その恐ろしい程計算されつくしたテクニックを... [続きを読む]
トラックバック時刻: 2008年01月10日 01:32
» ヘルス嬢がセフレに!? from ヘルス嬢をセフレに!?
★たった4度のヘルスで無制限の快楽ゲット! そのヘルスの魔法は、ありえないほど強烈です。たった4回の来店で・・・・何人ものヘルス嬢を次々とセフレに変えていきま... [続きを読む]
トラックバック時刻: 2008年02月10日 00:02
» 風俗でナンパ from ナンパの裏技ナンパ塾
私の落とした女を公開します 今すぐ確認するなら ↓ 風俗でナンパする必勝法 どー... [続きを読む]
トラックバック時刻: 2008年02月28日 18:23
» Rand Rapids Escorts from Rand Rapids Escorts
[続きを読む]
トラックバック時刻: 2008年05月14日 04:08
» 16 Topless from 16 Topless
Free Xxx Po... [続きを読む]
トラックバック時刻: 2008年05月15日 04:02
サイン・インを確認しました、 . さん。コメントしてください。 (サイン・アウト)
(いままで、ここでコメントしたとがないときは、コメントを表示する前にこのウェブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)