« Post2MTにPOP受信機能を付けようかな? | メイン | QuickCodeを使う »

postmt.pl v2.0.1

更新: 2004/1/25 プログラムにtypoがありましたので、修正。 post2mtはメールからMTにエントリするプログラムです。 様々な環境のインストールはさほど必要ありません。 新たに追加・変更となった機能(v2.0) ・POP3サーバからメールを受信してMTに投稿できるようになった。(APOP可) ・環境ファイルが変更となった。 ダウンロード 最新版をダウンロードしてください。
新たに追加となった機能(v1.2.1) ・au端末での画像回転用リンクの付与。(オプション) ・テキストのTEXT_MOREへの追加。(オプション) ・環境設定のテキストファイル化 ・カテゴリ名の動的な指定。(オプション) ・画像の位置指定(とalign指定)。(オプション) ・MTのPublishCharsetの指定。(オプション) ・ドラフト(下書き)としてMTに投稿する指定。 ・画像ファイル名はオリジナルのファイル名を出来るだけ尊重するようにしました。但し、日本語ファイル名は残しません。 post2mtの環境設定ファイルは以下のようになります。(post2mt.pm) これをwwwからアクセスできない場所に置くのがいいでしょう。 もちろん、post2mt.pl自体もwwwからアクセスできない場所に置くのが望まし いです。 [quote][code] # post2mt.pl 環境ファイル # このファイルの日本語文字コードはEUCであること! package post2mt; # Set configuration variables my %PTCFG; $PTCFG{BLOG_NAME} = "blogname"; #blog名 $PTCFG{BLOG_UNAME} = "username"; #blogユーザ名 $PTCFG{BLOG_CNAME} = "maillog"; #blogカテゴリ名 $PTCFG{IMG_DIR} = "/path/to/image/dir"; #画像ディレクトリ $PTCFG{IMG_URL} = "http://url/to/image/dir"; #画像ディレクトリURL $PTCFG{MAX_W} = "188"; #画像サムネイル化幅 $PTCFG{MAX_H} = "230"; #画像サムネイル化縦 $PTCFG{AU_ROTATE_URL} = "http://url/to/rotate.gif"; #auでファイルサイズが大きい時回転画像を用意する #その際表示させる画像 #これを指定しないと回転画像は用意しない $PTCFG{TEXT_MORE} = 1; #5行以上空行があればそれ以降をmoreに入れる $PTCFG{CHARSET} = "utf8"; #MTのPublishCharsetと同じもの(utf8/euc) $PTCFG{USE_POP3} = 0; # 0: not use(command) 1: use POP3 apop: APOP $PTCFG{POP3_USER} = "account"; #POP3 account $PTCFG{POP3_PWD} = "password"; #POP3 password $PTCFG{POP3_SERVER} = "hostname"; #POP3 server sub getconfig { my ($key) = @_; return $PTCFG{$key}; } 1; # end of config file [/code][/quote] post2mt.pl概要 ・メール(e-mail, DoCoMo iモードメール, iショットメール, au e-mail, フォ トメール, and maybe vodafone e-mail, 写メール)からMovable Type(MT)にエ ントリできます。 ・画像は複数個あれば一つのエントリに全部入れます。 ・サポートしているものは、テキストと画像のみです。それ以外のものは取り 込みません。 ・エントリは、画像があれば画像を先に本文があればその後本文になります。 ・サブジェクトは必須でそれがタイトルになり、一つ以上の画像もしくは本文 いずれかが必須となります。もちろん両方あっても構いません。 ・画像はサイズがデフォルトでは(188x230)まではそのままエントリに張り付 けます。それを越える画像の場合は、エントリ上はサムネールが表示され、画 像をクリックするとpop upウインドウに実サイズで表示します。サムネールを 作成する際は縦横の比率を守ります。サムネールの最大の大きさはデフォルト では(188x230)です。 ・au端末から幅が640以上の画像が送られて来た際、AU_ROTATE_URLに rotate.gifのURLが指定されていれば、90度回転した画像も一緒に作成します。 また、サムネールの横にそれを表示しるイメージ(rotate.gif)を張り付けます。 ・TEXT_MOREが0以外の場合、本文中に改行が5つ以上連続して現れたなら、そ れ以後をTEXT_MOREに格納します。 ・本文で、タグ {CAT カテゴリ名} が指定されていると、それらをセカンダリカテゴリ名とみなし、そのカテゴリ 名でエントリを作成します。プライマリカテゴリは常にpost2mt.cfgで指定さ れたBLOG_CNAMEになります。 ・本文で、タグ {IMG right}、{IMG left}、もしくは {IMG none} が指定されていたなら、画像のalignをleft、rightもしくはnoneとします。本 文は画像に回り込むことになります。また、画像をそのタグのある位置に配置 します。画像の順番は添付の順になります。 ・本文で、タグ {DRAFT} が指定されていると、このエントリはドラフト(下書き)として投稿されます。 ・専用メールアドレスにメールを出すと即時にblogが更新(自動ビルド)されま す。 ・blogにping設定がされていれば、自動的に更新pingが為されます。 必要な環境 ・専用メールアドレス(aliasでも可。POP3ではPOP3アカウント) ・post2mt用blog、カテゴリ、ユーザ(MT) これらは専用でなくても構いません。 ・perl 5以上 ・Image::Magick ・MIME::Parser ・MIME::Base64 ・MIME::QuotedPrint ・Mail::Header ・Mail::Internet ・File::Temp ・Jcode ・Net::POP3 ・Digest::MD5 (APOP利用の場合) ・その他 インストール ・必要な環境を整えます ・post2mt.plのパーミッションは0755にしてください。 ・pop機能を使う場合、post2mt.pmのパーミッションは0600にしてください。 所有ユーザはpopアカウントユーザにしてください。(内容にアカウント名と パスワードが含まれるため)もし、aliasesや.forwardを利用するなら0644と してください。 ・post2mt.pmの内容に日本語が含まれていますが、日本語コードは必ずEUCにしてください。 ・画像用ディレクトリを作ります。パーミッションは0757としてください。 ・回転画像リンクのためのrotate.gifをwwwからアクセスできる適当な場所に 置いてください。(上記画像用ディレクトリ中が望ましい)パーミッションは 0644としてください。 ・post2mt.cfgを変更して、あなたの環境に合わせるように設定してください。 ・専用メールアドレスに.forwardを設置します。(aliasesでももちろんOk) [quote][code]"|(/path/to/post2mt.pl /path/to/MT-dir /path/to/post2mt.pm-dir)" [/code][/quote] ここで、 /path/to/post2mt.pl は、post2mt.plが置かれている場所 /path/to/MT-dir はMTのインストールディレクトリパス名 /path/to/post2mt.pm-dir はpost2mt.pmが置かれているディレクトリ名 となります。 ※環境設定ファイルpost2mt.pmはアカウント毎に作成可能です。ディレクトリ 名は任意ですが、ファイル名は変えてはいけません。 ・POP機能を使う場合は、cronを使います。 [quote][code]/path/to/post2mt.pl /path/to/MT /path/to/post2mt.cfg [/code][/quote] をcrontabで設定してください。例えば以下のようになります。 [quote][code]10,20,30,40,50 * * * * /path/to/post2mt.pl /path/to/MT-dir /path/to/post2mt.pm-dir [/code][/quote](10分毎に起動) 注意点 ・セキュリティ対策はまだ為されていません。メールアドレスが知られる事の ないようにしてください。 ・Windows環境では一切テストしていません。 ・post2mtを利用した事により、利用者が何らかの不利益を被ったとしても、作 者は一切の賠償責任は負いません。 謝辞 ・mail2blog には色々と勉強させてもらいました。特にMTについて。 作者 miya@japo.net http://japo.net/miya/