Movable Type: 2004年9月アーカイブ

※※※
mail-entry-config.cgiに初期パスワードがおかしくなるバグがありましたので、修正して差し替えました。バージョン番号はそのままです。混乱しますが・・・
※※※

Movable Typeでメール投稿機能を実現するcgi、mail-entry.0.5.1を公開します。詳しい使い方は説明書をご覧ください。
0.5.0以降のものについての記述が加えられていないので、特に設置方法などは0.5.0リリース文も参照してください。説明書が0.5.1に対応しました。0.5.0以降、格段に初期設定が行いやすくなっています。

0.5.0からの変更点は以下の通りです。

  • rebuild_index.cgiがMTディレクトリにないと動かなかったバグの修正
  • 携帯電話からでも設定が行えるように修正(Thanks 板屋かえでさん)
  • パスワードに使える文字に、記号(半角)を追加しました。一文字一文字チェックして動きましたけど、全部の記号が使えるという自信はないです(汗)
  • 新たに「公開用画像保存ディレクトリのURL」という設定が加わりました。初期設定は空白になっています。必ず設定してください
  • 公開用画像保存ディレクトリ、作業用ディレクトリの指定が、絶対パスへ対応しました。相対パスとお好みの方を使ってください
  • 暗号化パスワード生成時に、サーバー環境によってはエラーの出る可能性へ対応しました(たぶん)。

おそらく以上です。
また、動作環境に「crypt関数の使えるサーバー」を追加します。パスワードの処理に使っているのですが、これが使えないサーバーというのもあるようです。ASJとXREA、それとMacOSX 10.3では動きました。

なにか不具合などありましたら、コメントいただけるとうれしいです。

それでは、ダウンロードはこちらから!

メール投稿システム新バージョンのテストです

mail-entryとは、Movable Typeを使用したブログにおいて、新しいエントリーをメール送信によって追加するためのcgiです。画像を添付すれば、エントリー内に画像が埋め込まれます。
Movable Type 2.661で動作確認しています。私は確認していませんが、Movable Type3系列でも動作するようです。

昨日の0.5.0リリース文で書き忘れたことを列挙します。
mail-entry-configで使用するパスワードは、最大8文字です。下限は設けていませんが、もちろん長い方が安全です。クラッカーに狙われるようなものかと言われれば、可能性は低そうですが。認識甘いですかねぇ。

携帯電話からも設定が更新できるように考えていたのですが、今になってテストしてみたら、ダメみたいですね。私のはauのA5404Sなのですが、textareaタグを認識しないようです。パスワード変更のところはtextareaタグを一つも使っていないので、携帯電話からでもちゃんと出来ました。でもtextareaタグが使えないのでは、困ってしまいます。とりあえず、投稿許可アドレスの追加・削除だけは携帯から出来るようにしたいので、そこはなんとかします。
textareaの代替タグってないのでしょぅか?携帯かどうかを判断して携帯の場合はinputで済ませるようにすればいいのかな?inputの入力可能最大文字数って、何文字なんでしょう?

それから、今まで 公開用画像保存ディレクトリを相対パスで指定していましたが、次バージョンでは絶対パスにも対応する予定です。設定変更してもらうのは心苦しいので、相対パスでも絶対パスでもいけるようにするつもりです。もしくはmail-entry-configで差異を吸収するとか。この程度ならすぐ実装出来ると思います。作業用ディレクトリは相対パスのままで良いですか?普通はmtディレクトリに作るものだと考えているので、相対パスの方がかえって記述が単純だと思われますが。あー、これもどっちでも出来るようにしておけば問題ないのかな。どなたでも、ご意見あればお聞かせください。

mail-entry0.5.0が出来上がりました。0.3.7以降0.4.0-test4までの全ての追加・修正点を含んでいます。加えて、引用符の削除(引用符の種類は複数種類指定可能)が出来るようになり、設定がブラウザから行えるようになりました。

ダウンロードはこちらから。
設置方法です。mt.cgiのあるディレクトリに新しくディレクトリを作り(名前は何でもかまいません)、mail-entry.zipをダウンロードして解凍し、mail-entry.cgi、rebuild_index.cgiとmail-entry-config.cgiの先頭行にある「#!/usr/bin/perl -w」を、使用しているサーバーのperlへのパスに書き換え(普通は/usr/bin/perlか/bin/perlです)、新しく作ったディレクトリへコピーしてください。

新規に設置する場合は、ブラウザでhttp://あなたのmt.cgiのあるディレクトリ/mail-entryを設置したディレクトリ/mail-entry-config.cgiへアクセスすると、設定画面が表示されます。初期パスワードは「passpass」です(「」は要りません)。まず、パスワードの変更をして、それから設定編集をしてください。各画面でパスワードの入力が必要です。プログラムが手抜きなため、一度入力したパスワードを記憶したりとかはしてません。

設定編集画面には、各設定項目について簡単な説明が付いています。参考にしながら入力していってください。分かりにくいところがありましたら、このエントリーにコメントをつけてください。ちょこちょこ修正していこうと思っています。

同梱されているindex.cgiは、通常はindex.htmlが表示するけれど、5分間隔でmail-entry.cgiを実行するというcgiです。これを使えば、mail-entryの疑似自動実行が出来ます。index.htmlよりもindex.cgiが優先されるように.htaccessを作り、index.cgi内の記述に従って設定をするだけです。設定値の末尾にある「;(セミコロン)」を消してしまわないように注意してください。

for_mt4iディレクトリにあるindex.cgiは、talk to oneself 2の太鉄さん作のMT4iを使用している場合に、上記と同じ原理でmail-entryの疑似自動実行を実現させるcgiです。上記index.cgiとは多少中身が違っていますが、設定項目はだいたい同じです。お好みでご利用ください。


旧バージョンを使用していた方は、設定の移行が自動で出来るようになっています。旧バージョンのmail-entry.cgiをmail-entry.cgi.oldという名前に変更し、新mail-entryのディレクトリへコピーしてください。そしてブラウザからhttp://あなたのmt.cgiのあるディレクトリ/mail-entryを設置したディレクトリ/mail-entry-config.cgi?readを開きます。(末尾にある?readを忘れないように)すると設定以降画面が表示されます。実行ボタンを押せば完了です。

初期パスワードが「passpass」(「」は要りません)になっていますので、まずパスワードを変更してください。その後、設定編集画面で、正しく設定が移行されているかを確認してください。私の環境下では完璧に移行できるように作りましたが、出来ない場合もあることでしょう。

新しく追加された設定には、標準値が入力されています。環境に合わせて修正してください。

mail-entryの設置ディレクトリが変更されたため、index.cgiの修正作業も必要です。リダイレクトによる表示をするコードを追加した新しいindex.cgiを同梱していますので、参考にしてください。

また、同梱されているパッチファイル(拡張子がdiffのもの)は、パッチとしての目的を果たすものではありません。改造されてる方に、修正点が分かるようにするためのものです。もちろんパッチですから、セッティング節をまるごと削除してからpatch-p0をすればパッチが当たるはずなのですが、なんだかうまくあたらないのです・・・。
バージョン0.3.7移行の追加機能については、申し訳ありませんが過去のエントリーを参照してください。0.4.0-test1~4リリース時のエントリーに細かく書いてあります。説明書への反映も、しばらく時間をください。いっぱいいっぱいでございます・・・

そろそろmail-entry.0.4.0公開かと思いきや、公開をスキップします。
バグがないか様子見している間に、ブラウザから設定出来るようにするプログラムが出来てしまったので、0.5.0として公開することにしました。

まだ設定画面が素っ気なさすぎるのでこのまま公開するか考え中なのと、本体プログラムの動作チェックをろくにしていないので、それが済み次第公開します。月曜日には公開したいなぁ、と考えております。
もうすこしお待ちください。

mail-entry.0.4.0-test4を公開しました。
test3にはまたしても余分なセミコロン混入というバグがありました。以前直したはずのものだったのですが・・
実はtest2にも入っていたようです。これで動かなくて困った人がいたらごめんなさい。たぶん誰もダウンロードしなかったに2000点。希望。


というわけで、今度こそこれでどうだのテスト版をダウンロードするにはここをクリック!

※09/08 21:18追記
板屋かえでさんからバグ報告をいただきました。いつもいつもありがとうございます。
急いでエントリーしたら書き忘れてしまいました。すいませんです。

まずは不具合修正から。

  • 複数通の画像添付メールを処理した場合に、エントリー内に埋め込まれる画像は、最後に処理したメールに添付されていたものにすべて置き換えられてしまい、添付されていた画像は、正常にエントリーされたもの以外はすべて消えてしまうという不具合を修正しました。

そして、機能追加です。

  1. 今までのindex.cgiを使った方法だと、MT4iを使用して携帯電話から閲覧したときにmail-entryを実行させることは出来ませんでしたが、それが可能となる仕組みを組み込みました。
  2. メール本文内でエントリータイトルを指定できるようにしました。このとき、メールの件名は無視されます。

詳細を説明します。まずは簡単に説明できる2番から。
新たにSetting節に追加された$title_headに、たとえば"題名:"と指定します。すると、メール本文内でのエントリー本文の先頭行(つまりカテゴリー指定の直後)にこの文字列があると、mail-entryは題名:以降から行末までを、エントリータイトルにセットします。このとき、メールの件名はエントリータイトルとはならずに無視されます。
題名:が無かった場合は、通常通りにメールの件名がエントリータイトルとなります。

次に1番です。
まず、新たにSetting節に追加された$mt4i_urlに、mt4iへのURLを指定しておきます。たとえばhttp://www.hogehoge.com/i/mt4i.cgiとします。そして、mail-entryを呼び出すとき、引数にMT4iをセットすると、処理が終了したときに、http://www.hogehoge.com/i/mt4i.cgiへリダイレクトされます。
mt4i用のindex.cgiとして、数分間隔でmail-entry.cgiに引数MT4iをセットしたものを呼び出すものを作成すれば、携帯電話からmt4iを利用して閲覧する場合にも、自動的にブログを更新することが出来るようになります。いままでこれをやろうとindex.cgiを作っても、表示されるのはmt4iではなく、通常のindex.htmlになってしまいました。

平たく言えば、ブラウザからmail-entry.cgi?MT4iとして実行すると、$mt4i_urlへリダイレクトされますよ、ということです。それを利用してindex.cgiをコーディングすれば、mt4iの実行とmail-entryの実行が両立できますよ、と。

cronなどでmail-entryの自動実行が出来る場合には必要のない機能ですけれど。サンプルとして作成したmt4i用index.cgiを同梱しました。for_mt4iフォルダの中に入っています。試してみてください。


それでは、だいぶ安定してきたけれど、未知の不具合があるかもしれないテスト版をダウンロードするにはここをクリック!最新版をどうぞ。


機能追加ばかりでキリがないので、これで数日様子を見て、何事もなければこのまま正式版となります。もしなにか不具合があったらどしどしご連絡ください。
次こそは、ブラウザで設定が出来るようにする、つもり、の予定、です。

昨日エントリーした不具合の、対策バージョンです。他は変更ありません。こちらのページからダウンロードしてください。

不具合内容

  • 複数通の画像添付メールを処理した場合に、エントリー内に埋め込まれる画像は、最後に処理したメールに添付されていたものにすべて置き換えられてしまう。添付されていた画像は、正常にエントリーされたもの以外はすべて消えてしまう。


なお、0.4.0-test2につきましては、近日リリース予定のtest3にて修正予定です。ちょっとまた手を加えたので、その辺が詰められれば。その後数日様子を見て正式版となる予定です。

そしたら0.4系列は不具合修正のみにして、早急に0.5へ移りたいと思っています。0.5では、設定をWebから、なんて考えてますが、どうなることやら。不具合修正のみというのもどうなることやら。でも防災訓練で苦労したので、Webからの設定はなんとしても出来るようにしたいです。

mail-entryの現在公開しているバージョンに、複数通の画像添付メールを処理した場合に、エントリー内に埋め込まれる画像は、最後に処理したメールに添付されていたものにすべて置き換えられてしまう不具合が発覚しました。添付されていた画像は、正常にエントリーされたもの以外はすべて消えてしまいます。
過去の多くのバージョンにも同じ不具合があります。全てのバージョンかもしれません。

次のリリースで修正されますが、とりあえず修正するための方法を掲載します。
Ver.0.3.6の場合、203行目に
my $filename = $t.$multi_cnt++;
とあります。これを
my $filename = $t.$multi_cnt++.$count;
としてください。うまく動くと思います。
他のバージョンの場合も同じ文のところがありますので、同様に修正してください。

この不具合は、mail-entryでは画像を受け取った時点で時間に基づいてファイル名を与えるのですが、複数通を処理すると時間差が無さ過ぎて、同じファイル名になってしまうのが原因です。ですので、どんどん上書きされて、最後のものだけが残ってしまうわけです。
今日、防災訓練で何通かの写真付きメールを同時に処理して発覚しました。

重大な不具合に今まで気づかずすいませんでした。

My status

BlogPeople

apple

気になるサイト覚え書き

ウェブページ

Powered by Movable Type 4.1

このアーカイブについて

このページには、2004年9月以降に書かれたブログ記事のうちMovable Typeカテゴリに属しているものが含まれています。

前のアーカイブはMovable Type: 2004年8月です。

次のアーカイブはMovable Type: 2004年10月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。