このスクリプトを使うと、MovableType(以下MT)へのエントリー登録がメールから行えます。あひるさんが作成されたスクリプト(mail2entry.cgi)に、oshoが改変を加えたものです。画像ファイルを添付することで、画像を含んだエントリーも出来ます。
バージョン0.5.3以降の動作確認はMT3.11で行っています。0.5.2まではMT2.661で確認していました。0.5.3以降もたぶん動くと思います。
現在のバージョンは0.5.3です。(2004/12/4リリース)※0.6.3を公開しています。まだ心配な点が多いため、こちらにはリンクしていません。安定を求める方は0.5.3を、新版の機能が必要な方は0.6.3をご利用ください。こちらからどうぞ。
0.3.6までのバージョンに、エントリーが重複登録されてしまう不具合が存在しています。最新版へのアップデートを強くお勧めしてます。
mail-entry.zipをダウンロードするにはここをクリックしてください。
(Windowsから解凍したフォルダを見ると「_MACOSX」というフォルダと、同名のファイルが含まれていますが、関係ありませんので無視してください。MacOS XでZIP圧縮しているため、Mac独自のファイル情報が含まれてしまうようです。)
Ver.0.3.0以降用の差分ファイルはこちら。ZIP圧縮してまとめてあります。いまのバージョン番号と同じバージョン番号を持つパッチを適用してください。バージョンが古い場合は一つずつ順に適用していく必要があります。0.5.0以降は、パッチが正常に当てられるかどうかのチェックをしていません。改造してる方向けに、バージョンアップポイントをお知らせするのが主な目的となっています。
まずはどんなふうに使うものか説明し、設置方法は後述します。
使い方
- メール本文の1行目にauthor(投稿者)を、2行目にカテゴリを、それぞれ<>(半角文字)で囲って指定してください。使用するauthorとカテゴリは事前にMTで作っておく必要があります。
- <extend>と書かれただけの行があると、それ以降の行は追記項目(extend)として扱われますので、必要に応じて指定してください。この指定の前後に文字があってはいけません。また、<>の中の文字は、設定により好みのものにすることが出来ます。例えば<追記>とすることも可能です。
- "---"と書かれただけの行があると、それ以降の行は無視されます(ダブルコーテーションは不要)。メールの署名の前に書き込めば、署名欄を無視できることになります。この"---"も、設定で好みのものに変えられます。
- エントリーに画像を付けたい場合は、メールに添付してください。複数枚の画像もOKです。
- カテゴリを複数指定したい場合は、<カテゴリ1:カテゴリ2:カテゴリ3>という具合に、":"(コロン)で区切って列挙してください。
- トラックバックを送信したい場合は、3行目に<トラックバック送信先URL>という形で記入してください。複数指定したい場合は、"|"で区切って列挙してください。
例
宛先:
スクリプト内で設定したメールアドレス
件名:
メールからエントリー!
本文:
<anamizu>
<Moblog>
ここに本文を書く
<extend>
ここから追記として扱われる
---
これ以降、何が書いてあってもエントリーには反映されない
- このメールをmail-entry.cgi用に準備したメールアドレスに送り、mail-entry.cgiをブラウザから開くと、エントリーの登録が行われます。携帯電話のブラウザからでも可能です。
- 例の通りのメールを送ると、タイトルが「メールからエントリー!」、authorが「anamizu」、カテゴリーが「Moblog」、本文が「ここに本文を書く」、追記が「ここから追記として扱われる」というエントリーを登録できます。
- authorまたはカテゴリーの指定を省略することも出来ます。省略したい方を<>としてください。省略すると、$defaultauthor、$defaultcategoryで設定した値が使用されます。両方とも省略することも出来ます。その場合は1行目からエントリー本文を書きます。
その他、気の利いた機能(自分で言うのも何ですが)
- author、カテゴリ指定の直後に「題名:」と書くと、その行がエントリータイトルとなります(題名:は除かれます)。メールの件名欄は無視されます。
- 先頭に空行があると、無視します。携帯電話にひな形を送って・・・とかやるときに重宝します。私の携帯は返信ってやると先頭に空白が入るんですよ。
- 引用符を取り除くことが出来ます。どの文字を引用符とするかも設定できます。
- メールソフトが自動改行をするばあい、設定により取り除くことが出来ます。単独の改行が削除され、2つ、3つと連続した改行の場合は最初の一つだけが削除されます。任意に改行したい場合は、今までよりも一つ余分に改行を入れることになります。
- 上記自動改行の取り除き機能は、携帯電話からのメールの場合は働きません。携帯電話で自動改行は聞いたことがないものですから。
- mail-entry.cgi?MT4iとして呼び出すと、cgi実行後、MT4iを呼び出すことが出来ます。設定時にMT4iのURLを設定してください。
- MT自身は対応していませんが、mail-entry独自にGDライブラリによる画像縮小に対応しています。perlで使えないときはPHPから呼び出すといった強引な手段も提供しています。PHPから呼び出すときは、設定時にブログのURLも設定してください。
他にも書き忘れの機能があるかもしれません。思い出したら加えます。
おすすめ記述例
宛先にはもちろんmail-entry用に準備したメールアドレスを記入します。件名は空欄か、何でも良いので適当に書いておきます。私は「投稿」などとしてます。
以下にメールの本文に入力する部分の例を挙げます。
- 通常のエントリー
<author>
<モブログ>
題名:今日からモブログでいぇいいぇいいぇぃ!
すんなりmail-entryが設置できて気分が良いぜぃ!(希望)
---
(この辺に署名とかがメールソフトにより書き込まれている)
- トラックバックを送信する
<author>
<モブログ>
<http://トラックバックURL>
題名:今日からモブログでいぇいいぇいいぇぃ!
すんなりmail-entryが設置できて気分が良いぜぃ!(希望)
---
(この辺に署名とかがメールソフトにより書き込まれている)
- 複数のカテゴリを指定する
<author>
<モブログ:日々の記録>
題名:今日からモブログでいぇいいぇいいぇぃ!
すんなりmail-entryが設置できて気分が良いぜぃ!(希望)
---
(この辺に署名とかがメールソフトにより書き込まれている)
動作環境
- perlバージョン5以上
- crypt関数が使えるサーバーであること。
- Net::POP3、MIME::Parser、Image::Size、Jcode.pm、CGI、File::Copyの各ライブラリがインストールされて使えるようになっていること。モジュールがインストールされているかどうかはこちらのスクリプトを使用してみてください。中身を書き換えて、いろんなモジュールの検査が出来ます。MIME::Parserが無いことが多いです。
- 画像の縮小機能を使う場合はImage::MagickかGDが必要です。
- MT4iへのアクセスでもmail-entryを自動実行する場合と、PHP経由でGDを使用する場合は、WebサーバーがLocationによるURL転送に対応している必要があります。
たぶんこれだけの環境であれば動くと思います。MIME::ParserはMIME::Toolsに含まれていて、MIME::Toolsに含まれる多くのライブラリを必要とします。また、MIME::ParserがインストールされていないレンタルサーバではMIME::Toolsもインストールされていないことが多いようですので、実質MIME::Toolsが必要といったほうがいいかもしれません。Jcodeは、MTの文字コードがUTF-8でなければJcode.plでもいいらしいですが、コードの変更が必要です。自分で書き換えられる方だけどうぞ。
設置前の準備
専用のメールアドレスを用意します。必ず一つ、専用のものを用意してください。エントリーしたメールはどんどん削除されていくので、大切なメールが消えてしまう可能性大です。また、設定ファイルを覗かれてしまうとパスワードが分かってしまいます。危険がいっぱいです。