メール投稿タグの投稿
2008-07-21
WordPress 用メール投稿プラグイン「Ktai Entry」のバージョン 0.8.6 をリリースいたします。変更点は以下の通りです。
- 外部メールボックスの読み出しを「しない」に設定したとき、または、読み出し時間間隔を経過していない場合は、外部メールボックスを読み出すトリガーとなるスタイルシート表示を行わないようにしました。
- WordPress 2.6 以降で、wp-content/ ディレクトリーもしくは wp-content/plugins/ ディレクトリーを移設した場合に対応しました。ktai_entry/wp-load.php の書き換えが必要です。
- 本文が同じ内容を投稿しようとするときの重複チェックを強化しました。
- 添付画像がサーバーに保存できなかったときのエラー処理を改善しました。
- プラグインを停止したとき、POP3 サーバーのパスワードのみ初期化するようにしました。(従来はすべての設定を初期化していました)
- 次の独自フィルターフックを追加しました: post_category, post_keywords, image_rotate, post_name, post_date
今回は WordPress 2.6 対応の強化および、独自フィルターフックの追加です。WordPress 2.6 の新機能のうち、管理機構の SSL 化には対応していません (外部メールボックスを「すぐ読み出す」などが動かなさそう)。独自フィルターフックは、「VGA 以上の画像でも強制的に縦向きにしたい」という相談があったため、フィルター関数を書けば可能になるようにしたものです。ただし、このフィルター関数はテストしてないので動かなかったらごめんなさい
2008-06-17

WordPress 用メール投稿プラグイン「Ktai Entry」のバージョン 0.8.5 をリリースいたします。変更点は以下の通りです。
- 外部メールボックスを読み出すトリガーを、スタイルシートの呼出しに変更しました。これにより、JavaScript オフの設定がされたブラウザーによる閲覧でもメール読み込みが行なわれます。
- 同じ時刻の投稿があれば重複としてエラーにする確認を、DATE コマンドで添付画像の撮影日時を投稿日時に指定した場合でも行うようにしました。
- 同じ内容の投稿がある場合、重複とみなしてエラーとするようにしました。
- デフォルトの投稿スラッグが、時分秒を繋いだ6ケタの数字にならず、固定の文字列「003328」になってしまうバグを修正しました。(Ktai Entry 0.8.4 のみ存在するバグ)
- Windows サーバーで運営していて、かつ、プラグインのフォルダー名を ktai_entry 以外に変更しているとき、正常に動作しない不具合を修正しました。
- GD が組み込まれていない PHP で稼動させたとき異常終了していましたが、添付画像ファイルを無視して投稿処理がされるようにしました。
- WordPress MU で使用した場合、管理パネルの「メール投稿」でメールサーバーの設定をできるようにしました。通常の WordPress の場合は従来通り、「投稿設定」→「メールでの投稿」にて設定してください。ただし、添付画像の投稿にはうまく対応していないかもしれません。(Ktai Entry 0.8.4 で作り込んだつもりでしたが動作していなかった)
今回は投稿スラッグが固定の文字列になってしまうバグの修正および、重複投稿チェックの強化、外部メールボックスの読み出しトリガーの変更を行なっています。最後のものはちょっとチャレンジングな変更かもしれません。JavaScript オフの環境でも動作する反面、スタイルシートの呼び出しをきっかけとしているため、ブラウザーのキャッシュに入りやすい (==何回も実行されない可能性がある) という欠点があります。手元では問題なく動作していますが、環境によってはうまくメール取り込みが行なわれないかもしれません。
機能自体の強化ではありませんが、附属ドキュメントに「メール投稿されたら管理者にメールが届くようにしたい」というカスタマイズを掲載しました。作者としてはそういう機能の必然性を感じないため本体に取り込む予定はありませんが、必要な方はカスタマイズを行なってみてください。
今回は変更点やカスタマイズについて慎重にテストを行なっているので、たぶん問題なく動作するはずです。
2008-06-05
WordPress 用メール投稿プラグイン「Ktai Entry」のバージョン 0.8.4 をリリースいたします。変更点は以下の通りです。
- 投稿日時を指定できるようにしました。日時を直接指定する方法と、添付する画像の撮影日時を投稿日時にする指定方法の2種類に対応しています。
- 添付ファイルの MIME タイプと拡張子の対応を確認し、一致しない場合は画像を保存しないようにしました。(気休め程度のセキュリティー確認)
- WordPress MU で使用した場合、管理パネルの「メール投稿」でメールサーバーの設定をできるようにしました。通常の WordPress の場合は従来通り、「投稿設定」→「メールでの投稿」にて設定してください。
今回は投稿日時指定コマンドの追加と、WordPress MU でのメールサーバー設定フィールドの追加です。個人的には、単純な日時指定コマンドは不要と思っていましたが、「添付写真の撮影日時を投稿日時にする」機能をつけたかったため、オマケとして単純な日時指定もできるようにしました。「撮影日時を投稿日時とする」アイディアはいずみちゃんから頂きました。ありがとうございます。ただし、シャープ製ソフトバンク端末のように EXIF がつかない場合や、画像回転コマンドを併用した場合 (EXIF が落ちるため) は使えません。後者については今後改善する予定です。
WordPress MU 対応は 0.8.3 リリースでは見送ったのですが、今回「MU のときだけ設定フィールドを出す」という方向で実装しました。通常 WordPress でもメールサーバー設定フィールドを独自に持つのもよさそうなのですが、「同じような設定項目が複数ある」のはよくないと考えました。wp-mail 起動問題については、WordPress コアを改修してもらう方向で直せばいいと思いますし。
2008-05-25

WordPress 用メール投稿プラグイン「Ktai Entry」のバージョン 0.8.3 をリリースいたします。変更点は以下の通りです。
- 各社装飾メール (デコメ/デコレーションメール等) を送信した場合、同じテキストが重複しないようにしました。装飾をそのまま反映する機能は未実装です。
- ログ機構が吐くメッセージを日本語化しやすいように、po ファイルにログ用文字列を含めました。デフォルトでは、文字化けを防ぐために英語メッセージのままです。日本語化は各自で行なってください。
- From フィールドに MIME エンコードされた日本語を含む場合でも正しくメールアドレスを検出するようにしました。従来、1バイト目もしくは2バイト目に < や > を含む場合 (「ぜ」「下」「次」など) では漢字部分をメールアドレスとして判断してしまっていました。
- 日本語名の添付ファイルを正しく検出するようにしました。ただし、保存時は日本語部分を削除したファイル名となります。すべて日本語部分のときは、ランダムな英数字をファイル名とします。
(以下、技術的な難し〰い話)
今回はバグフィックスのみです。「From に漢字を使っていると投稿できない」というバグに対応するため、MIME ヘッダをデコードしないことにしました。From, To, Cc フィールドからメールアドレスを抽出する処理は、正規表現ではなく RFC2822 に準拠した方式にしているのですが、従来、MIME B デコードしてから処理していたため、日本語部分にメールアドレスっぽい文字列があると抽出に失敗していました。MIME デコードしない状態で抽出すれば OK です。正規表現でメールアドレスを探す場合、”Ikeda,Yuriko”@example.com だとか、@ の前後に空白がある (yuriko @ example.com) とかでうまく抽出できないという問題がありますが、独自方式にも落とし穴がありました……。
日本語ファイル名ですが、Ktai Entry は「携帯電話から投稿する」ことを主眼にしていたので、ファイル名は英数字記号だけと想定していました。しかし、PC からメール送信する場合は日本語があり得るので、今回対応を図りました。そうなると、RFC2231 に対応しなければなりませんよね
既存ツールでは、MobG だけが RFC2231 準拠の日本語ファイル名を認識できます。さすがですね (でも、ソースに「RFC2331」と書いてあるのはご愛嬌)。wp-mb_mail は、RFC 非準拠の MIME B エンコードだけ対応、wpmob は日本語ファイル名を認識できません。まあ、「携帯電話から投稿」という意味では、あまり問題ではないでしょう。
なお、WordPress MU でメールサーバーの設定が入力できない件の対応は見送りました。「MU だけフィールドを増やす」手が楽ですが、それならすべての WordPress で設定フィールドをつけてもよさそうです。で、そうなると、wp-mail.php 起動の根本対策として、メールサーバー設定カラム名称を独自のものに変更することが可能になってしまいます。こうするとセキュリティーが非常にアップして魅力的なのですが、似た設定項目が複数あるとややこしいのではないかと気にもしています。そのへんの検討が進んでないので、見送り、としました。
2008-05-20
以前当サイトで発表した「WordPress 用メール投稿ツール比較表」ですが、現在は Ktai Entry 説明書に掲載していて、そちらをメンテナンスしています。さきほど、ゆあささん作の wpmob を追加しました。
わたしの趣味で「メール投稿するだけで投稿される方が利便性が高い」と考えたため、wpmobExpress を優先して掲載していたのですが、ツール本体の機能としては wpmob の方が高く、また、wpmob, MobG のような「投稿処理を手動で行うツールの方が使いやすい」という人も存在するようなので、掲載することにしました。wpmob は XML-RPC 経由で投稿するため、画像がメディアライブラリに登録される (はず) なのもよい点ですね。のですが、画像は独自ディレクトリーに手動アップロードしてて、メディアライブラリへの登録はしないようです……。
wpmob, wpmobExpress は古くから存在し、かつ、定期的にメンテナンスされているというすばらしいツールです。気になるとすれば、wpmob は XML-RPC 利用のため、WordPress のユーザーID、パスワードを記録する必要がある (==パスワード変更したら wpmob もパスワード変更しなくてはならない) のが面倒な点でしょうか。あと、画像がメディアライブラリに登録されないので、画像の管理がちょっと大変なところでしょうか。
2008-05-11
WordPress 用メール投稿プラグイン「Ktai Entry」のバージョン 0.8.2 をリリースいたします。変更点は以下の通りです。
- ドキュメントに Gmail および Yahoo! メールでの設定方法を記載しました。
- ドコモ端末から Gmail, au one メール、Yahoo! メールに送信した場合に、iモード絵文字を認識するようにしました。
- ソフトバンク 3G 端末から Yahoo! メールに送信した場合に、ソフトバンク絵文字を認識するようにしました。
今回は絵文字対応の強化です。実は従来バージョンでも SSL が使えることが判明したため、Gmail での iモード絵文字対応を行ない、さらに頑張って Yahoo! メールでの iモード絵文字/ソフトバンク絵文字に対応しました。au one メールはテストしていませんが、Gmail と同じインフラなので大丈夫でしょう。Yahoo! メールにおける絵文字 JIS コードは、実機から全絵文字を送信して調査しました;-) Vodafone マークの絵文字などは未調査です (Vodafone 時代の 3G 端末を持っている人がいれば協力お願いします!!)
これで、絵文字対応はほぼ完成と言えます。イー・モバイルが対応していませんが、インターネットに出ていく時点で「?」に変換されているため、キャリア側の機能アップを待つしかありません。
あとは、デコメ等の装飾メールに対応すること、コマンドでカテゴリーやタグ一覧を返送できる仕組みを作ること、Ktai Style で下書きを作って電話機に送信し、Ktai Entry 用の投稿メールを作れるようにすること (==既存の下書きを投稿メールで上書きする機能) あたりの対応でしょうか。Ktai Entry は MobG のような投稿作成ウィザードを持ちませんが、それは Ktai Style と連携すれば似た機能が作れると考えています。
2008-05-10

WordPress 用メール投稿プラグイン「Ktai Entry」のバージョン 0.8.1 をリリースいたします。変更点は以下の通りです。
- 投稿ステータスの指定に PRIVATE (未公開) を指定できるようにしました。
- 外部メールボックスを読み出すトリガーを、init フックから wp_head フックに変更して、より確実にメッセージ取り込み処理を行えるようにしました。
- Basic 認証、Digest 認証で保護しているウェブログでも、自動的に外部メールボックスを読みに行けるようにしました。
- APOP ではなく POP を利用している場合、メールボックスに新着メールがなくても「サーバーエラー」(Bad Gateway) として処理していた不具合を修正しました。
- 投稿タイトルが文字化けしにくいよう、文字コードの検出を厳密にしました。
- 附属ドキュメントの「LightBox 用に、rel=”lightbox”属性を追加する」のコードがバグっていたのを修正しました。(画像つきメールを送信しても、投稿にはテキストしか反映されない不具合の原因)
今回は主にバグフィックスです。うまくメールが取り込まれない問題に対処するため、定期的に外部メールボックスを読みに行く仕組みを根本的に変更して、wp-shot に近い方向にしました。このため、メールボックスを読みに行くタイミングにはまると、画面表示が遅くなります。
また、0.8.0 では画像が出ないという問題が多発しましたが、これはカスタマイズ用サンプルコードにバグがあったのが原因で、Ktai Entry 本体の問題ではありませんでした。0.7.1 でも発生するはずですが、わざわざ戻して「発生するか確認」された方はいないようでした (追記: yutaka さんとこでは 0.7.1 に戻すと OK だったようです。うーん謎)。おそらく、0.8.0 にアップグレードしたと同時にカスタマイズを入れた人がほとんどだったのでしょう。ある意味ドキュメントのバグと言えます。
今回はテスト版を出したりして、多くの方のご協力を仰いでいます。まことにありがとうございます。だいぶ安定するようになっていますが、まだまだなところがありますので、今後もよろしくお願いします。
次はいよいよ SSL 対応して Gmail をサポートすることとします。そうなれば、ドコモ、ソフトバンクでも絵文字対応できるかもしれないので、調査してみます。それから、デコメ対応を試みますが、実はデコメ対応端末はドコモ、ソフトバンクしか持ってないので、au, WILLCOM 対応はかなり後回しになるでしょう。(防水、Bluetooth、電子コンパス対応でデコレーションメール対応端末はまだ存在しないので機種変更できず、対応はかなり先になりそう……)
2008-05-05
WordPress 用メール投稿プラグイン「Ktai Entry」のバージョン 0.8.0 をリリースいたします。変更点は以下の通りです。
- 絵文字投稿に対応しました。au および WILLCOM の絵文字を認識して、Ktai Style の絵文字フォーマットに変換して記録します。
- 「作成者/作者 (author)」以上の権限を持つユーザーが投稿する場合、「下書き (draft)」「レビュー待ち (pending)」の状態を選べるようにしました。また、講読者/協力者 (subscriber) は投稿してもエラー返送または破棄するようにしました (従来は下書きになっていました)。
- 添付画像を含む場合の出力フォーマットを管理パネルで設定できるようにしました。
- WordPress 2.3 以降において、カテゴリー指定コマンドでスラッグを認識するようにしました。
- 言語リソースファイルは lang フォルダー内にまとめました。
- カテゴリー変更コマンド、タグ付与コマンド、画像回転コマンドを本文最下行に書いた場合、除去されずに残ってしまう不具合を修正しました。
- 独自フィルターフック
post_status を追加し、images_to_link を media_to_html に名称変更しました。
今回はバグフィックス数件と、絵文字投稿機能を追加しています。Ktai Style の絵文字対応は PC 閲覧ではテキストになってしまうのが残念なところですが、メール投稿して携帯電話で閲覧すれば、十分に楽しめます。ぜひお試しください。
2008-04-29
WordPress 用メール投稿プラグイン「Ktai Entry」のバージョン 0.7.1 をリリースいたします。変更点は以下の通りです。
- ログ機構を追加しました。
- 独自フィルターフックを追加しました:
retrieve_interval, validate_address, image_link, images_to_link
- コマンドライン版 PHP から retrieve.php を起動したときは _wpnonce 引数を不要としました。このため、cron で定期的にメールボックスのアクセスを指示することが可能です。
- プラグインを停止すると、POP3 サーバーの設定を削除するようにしました。Ktai Entry が有効時は wp-mail.php の実行を抑制しますが、Ktai Entry を停止すると実行されてしまうため、安全策として設定を削除します。
- サーバー環境によって、カテゴリー指定コマンド、画像回転コマンドが効かない問題を修正しました。
今回は独自フィルターフック、ログ機構の追加およびバグフィックスを行なっています。ログ機構は、「うまく投稿できない」場合に役立つと思いますので、ぜひ活用してみてください。独自フィルターフックは、Ktai Entry の動作を自分好みに変更することができるものです。ちょっと使い方が難しいですが、ぜひチャレンジしてみてください。(「LightBox 用に、rel=”lightbox” 属性を追加する」などの例も用意しています)
2008-04-23
かねてから制作していた WordPress 用メール投稿プラグインですが、ある程度形になりましたので、公開いたします。名称は「Ktai Entry」としました。「Ktai Location」「Ktai Style」に続く「Ktai プラグイン」の3作目です。(いつの間にかシリーズ化
主な特徴は以下の通りです。
- 投稿の反映にはウェブブラウザが不要なので、メール送信ができればキャリアおよび機種を問いません。
- 投稿時にカテゴリー指定が可能です (複数カテゴリーに対応)。
- 投稿時にキーワードタグの付与が可能です。
- 画像を添付したメールに対応しています。画像を回転したり、大きい画像をサムネール化することが可能です。
- 画像は WordPress のファイルアップロード/メディアライブラリに格納されます。
- 環境に応じて、以下のいずれかの投稿スタイルが選べます。
- 外部メールボックスに随時アクセス:
投稿専用メールボックスに定期的にアクセスして新着メールがあれば取り込み、投稿処理を行う (wp-shotと同じ仕組み)。
- メール着信時に投稿スクリプトを起動:
メールサーバー上に投稿専用アドレスを作り、そこにメールが到着したら投稿スクリプトを起動させる (wp-mta と同じ仕組み)。
本プラグインは、wp-mta の後継プラグインとなります。そして、開発が止まっている wp-shot の機能も取り込んでおり、事実上 wp-shot の後継でもあります (実は、wp-shot には、わたしが貢献したコードも少し入っています ;-)。
バージョン的にはベータ版であり、まだまだ不具合が潜んでいる可能性があります。とはいえ、wp-shot もアルファ版レベルでしたから、移行してもさほど問題ないと思います。ぜひともお試しください。
製作中のメール投稿プラグインのドキュメントでは既存のツールに対する違いを書いてあるのですが、5つものツールに言及したので、文章だけでは、機能の違いが分かりにくくなってしまいました。そこで表型式で機能のある/なしを作ってみました。プラグインに先駆けて比較表を公開してみましょう。
※この比較表は古いものです。最新版は Ktai Entry の説明を見てください。
動作比較表
| |
新プラグイン |
wp-mta |
wp-shot |
MobG1.0 |
MobG 0.4 |
wp-mb_mail |
wpmobExpress |
許可アドレスの指定 (U: 登録ユーザー/F: 設定ファイル) |
U |
U |
U |
U, F |
U, F |
U |
F |
| 不許可アドレスからのメール |
残す/返送 |
返送 |
残す |
削除 |
削除 |
削除 |
残す |
| メール送信後に投稿処理が不要 |
● ※1 |
● |
● ※1 |
△ ※2 |
- |
- ※3 |
● ※4 |
| APOP 対応 |
● |
(対象外) |
△ ※5 |
● |
- |
● |
● |
| SSL 対応 |
- |
(対象外) |
- |
● |
- |
- |
- |
管理パネルでの設定 (設定ファイル編集が不要) |
● |
- |
● |
- |
- |
- |
- |
| 画像はメディアライブラリに登録 |
● |
- |
- |
● |
● |
● |
- |
| 画像は uploads ディレクトリーに保存 |
● |
- |
- |
● |
- |
● |
- |
| 画像の回転 |
● |
● |
- |
- |
- |
- |
- |
| 複数カテゴリーの指定 |
● |
● |
- |
● |
● |
- |
● |
| キーワードタグの付与 |
● |
- |
- |
● |
- |
- |
- |
| 出力テンプレートに対応 |
- |
- |
- |
● |
- |
- |
● |
※1: POP3 読み込みは画面出力と非同期で行なわれるため、サイト表示が待たされることはない。そのかわり、メール投稿がすぐ反映されないことがある。
※2: サーバーで cron 設定が必要。
※3:
別配布の STDIN 版では対応。
※4: POP3 読み込み完了まで画面出力されないため、タイミングによってはサイト表示に数分以上かかる。
※5: ソースコードの微修正が必要。
こうやってみると、新プラグインと、MobG 1.0 ベータ版の機能アップが顕著ですね。どちらも要注目でしょう。
この比較表は、ツール附属のドキュメントおよびソースコードから作成したものですが、もし間違っていれば、ご指摘頂ければ幸いです。
2008-04-22
鋭意製作中のメール投稿プラグインですが、POP3 対応は WordPress 附属の class-pop3.php をインクルードする予定でした。しかし、APOP 対応がバグっていることが判明してしまいました。
それは、サーバー接続時にチャレンジ文字列を解釈する部分で、 parse_banner() で if(!empty($digit)) という部分があるのです。これだと、数字の 0 を読み飛ばしてしまいます。これにより、チャレンジ文字列が変化してしまって、認証に通りません!! たぶん、脆弱性対策でヌル文字をスキップするつもりなのでしょうが、このコードを入れた人は、チャレンジ文字列に 0 が入らないサーバーを使っていたのでしょう……。
あと、apop() メソッドは、エラーが発生すると通常認証を試しますが、ここでエラーが出ると APOP 時のエラーメッセージを上書きしてしまいます。仕方ないので、エラーメッセージを「追加」するように修正しました。結局、WP の class-pop3.php は使いものにならないので、修正したものを「添付」することになりそうです。
ともあれ、POP3 対応もそれなりに動いたので、近いうちにリリースできそうです。ただし、動作確認が不十分なので、ベータ版レベルですが。
[追記] チケット#5915 が切られていました。WordPress 2.3.3 でエンバグしたようで、未だ修正されていないようです。提案されている修正案は正規表現を使っていますが、これは RFC1939 に合致するのかな?? (チャレンジ文字列は Message-ID と同じ書式らしいので、ドットが複数あってもいいような)
2008-04-21

先日制作開始したメール投稿プラグインですが、MTA からのプッシュ型 (wp-mta タイプ) では一通り動くようにはなりました。メールを POP で取りに行く方 (wp-shot スタイル) はまだテストしていません。
wp-mta はサムネール作成を自前で行なっていましたが、今回は完全に WordPress コアに任せることにしました。しかし、WordPress 2.0.x では、サムネールサイズが決め打ちで、フィルターによる変更も無理なため、WordPress コアのサムネール作成コードをコピペして取り込み、サイズ可変にしました。なお、画像の保存場所も wp-content/uploads/ ディレクトリーになります (wp-mta は独自の保存場所だった)。
で、問題は WordPress 2.5 でのメディア処理です。添付画像を XHTML として挿入するのは、新設の wp_get_attachment_link() を使うことにしましたが、これが結構凶悪で、img 要素に alt 属性をつけないのです!! WordPress コアが wp_insert_post() するときに alt 属性を補完してくれますが、それは空の内容になってしまいます。となると、Ktai Style による携帯電話表示では、画像が見えなくなってしまいます (画像の alt 属性が空だと画像を隠す仕様のため)。むりやり alt 属性を補完しないといけないようです……。
気になるのは、メディアライブラリーの「投稿に挿入」ボタンで作った画像 XHTML と、 wp_get_attachment_link() をデフォルト引数で作った XHTML では微妙に内容が違うことです。前者だと、img 要素の class 属性に “wp-image-NNN” (NNN は画像の post ID) が付与されますが、wp_get_attachment_link() を直接呼んだときにはつきません。メディアライブラリーは wp_get_attachment_link() とは違う API を使っているのかも??
[追記] その通りで、wp-admin/includes/media.php では get_image_send_to_editor() というのがあって、これは wp-includes/media.php の get_image_tag() を呼んでいます。これは alt 属性対応で、”wp-image-NNN” も追加します。こっちを使った方がいいかな??
2008-04-15

以前構想した新メール投稿プラグインですが、ぼちぼち制作を開始することにしました。拙作の wp-mta が、キーワードタグ非対応なことと、画像回転時に EXIF が落ちる (このため、GPS 位置情報も欠落する) のが不便なのですが、それに対応させるならば、新プラグインを作るべきだろうという考えからです。
難航しているのが、WordPress 2.1 から採用された attachment API の使用です。API を使うこと自体は簡単なのですが、ちょっと難儀な問題があります。wp_insert_attachment() には投稿 ID が必要なので、先に wp_insert_post() を行う必要があります。すると、投稿本文に画像を配置する (img 要素を入れる) ためには、以下のどちらかの手段を取ることになります。
- 画像ファイルを先に upload ディレクトリーに保存してから、そのファイルへリンクした img 要素を生成して投稿本文を作成 →
wp_insert_post() → 各画像を wp_insert_attatchment()
- テキストだけで投稿本文を生成して
wp_insert_post() → 画像を切り出して保存、かつ wp_insert_attachment() する → wp_update_post() 等で、投稿本文に img 要素を入れる
いずれにせよ、ちょっと複雑な処理になります。データベースアクセスを減らすためには、前者の実装の方がよさそうですが、画像ファイル格納と wp_insert_attachment() の実行タイミングがずれることと、attachment 型式での画像 URL にリンクできない (画像本体ファイルへのリンクのみとなる) のが問題です。実は、Ktai Style では、今後、画像は attachment 型式で呼び出すことを推奨しようと思っていて、そのためには、新メール投稿プラグインでもそうした方がよいです。attachment 型式の場合、画像を画面サイズに合わせて縮小させたり、元のページに戻るリンクを付けるなどの工夫が可能ですから、携帯電話には適しています。
となると、データベースアクセスが増えるものの、後者の実装しかなさそうですね……。その方向で進めてみることにします。
で、新プラグインですが、性懲りもなく PHP5 専用の予定です。画像回転時に EXIF を再生成しようと思っていますが、そのために PHP Exif Library を使おうと考えていて、これが PHP5 専用なためです。今どき PHP4 のサーバーは少ないですよね;-) と、PEL の配布サイトを確認すると「新メンテナー募集」になっていました。これじゃあ PEL 使うのはよした方がいいのかも……。
[追記 2008-04-16] メール投稿ヘルパー「MobG」の作者によると「WordPress 2.5 は添付ファイル画像の処理が大幅に更新されている」らしいので、新メール投稿プラグインも対応を検討しないといけませんね……。今のところ、WordPress ME 2.0.x には、WP コアの attachment 処理を丸コピー、WordPress 2.1 以降は attachement API を使用という方向でしたが、WordPress 2.5 以降はまた別の処理にしなければならない??
2008-01-10
昨晩検討した wp-shot と wp-mta の統合ですが、新プラグインを作成する方向で進めることにしました。wp-shot を改良するにもしても、wp-mta をベースにするにしても、手を加える部分が多すぎるためです。考えている機能は以下の通りです。
- カテゴリーの指定機能 (wp-mta のコード流用)
- キーワードタグ指定 (新規開発)
- 添付写真を WordPress のアップロードディレクトリー管理とする (新規開発)
- 写真の回転機能 (wp-mta のコード流用)
- FOMA 903i 以降の、本文に写真を埋め込んだフォーマットへの対応 (新規開発)
- 設定画面の簡略化 (psedo-cron は廃止して、5分ごとの POP アクセスに決め打ち)
- wp-mail.php の機能は自動的に殺されるようにする (インストールがより簡単に)。
「添付写真を WordPress のアップロードディレクトリー管理とする」のは、後で管理画面から見たときに扱いやすくするためです。これは「Wordpress のマルチバイト文字対応メール投稿(3)」では採用されている機能なので、追い付こうという魂胆もあります
ただし、この場合は、写真の添付忘れや回転指示忘れを後から修正するのはちと面倒です。従来の、WordPress の管理外ディレクトリーを使う方式の方が融通は効きます。このため、どちらの方式を使うかは設定可能とします。
今月末ぐらいには発表できると思いますが、さてどうなることやら。
実は、Ktai Style に wp-mta の機能を取り込むことも検討していました。しかし、機能として共通になる部分がほとんどないために没としました。
拙作の、自宅サーバー向けモブログ用スクリプト wp-mtaと、POP3 メール取り込み型モブログプラグイン wp-shot (Otsukare さん作) を統合しようかと考えています。
wp-mta は、dot-qmail ファイルで投稿スクリプトを起動させる仕組みなので、完全にリアルタイム投稿ができますが、メールボックスと WordPress があるサーバーが同一でないとうまく動かせません。まさに自分専用に作ったもので、わたしが欲しい機能をすべて盛り込んでいます (複数カテゴリーや画像の回転に対応)。wp-shot は、ウェブログが閲覧されたタイミングで POP3 で投稿専用メールボックスを読みにいく仕組みなので、万人向けです。しかし、機能が限定されています (カテゴリーは1つしか指定できない、画像の回転ができない)。
実は、キモとなる投稿作成の部分はほとんど同じ仕組みです (MIME デコードして、メールアドレスを確認して、wp_insert_post() を呼ぶ)。そのため、両者を統合するのは、さほど難しいことではありません。本当ならば、Otsukare さんにがんばってもらいたいのですが、ドキュメントなど未整備のまま広く利用されているのが現状です。これではあまりよくないので、何とかしたくなってきました。
で、悩んでいるのが、統合したプラグインの名前です
wp-mta は「dot-qmail/dot-forward から起動させる」ことを示唆する名称なので、POP3 型モブログプラグインにはふさわしくありません。Otsukare さんに許可を取って wp-shot の名前を使うのがよさそうですが、これも実は、ドコモの「i-shot」が元の名前なので、今さら感があります
(もはやドコモは i-shot なる商標を使っていない) それならば、まったく新しい名前をでっち上げてしまいましょうか。「Ktai なんちゃら」シリーズとして「Ktai Post」だと直截すぎるので、ちょっと検討してみます。
もう1つ悩むのは、PHP4 対応をするべきかどうかです。wp-mta, wp-shot ともに PHP4 に対応しているので、その後継プラグインならば対応した方がいいでしょう。でも、わたしの日常環境では PHP4 は撤廃していて、テストができません。スクリプト自体は PHP4 対応で書くとしても、「PHP4 でのテストはしてません」という状態でリリースしときましょうか。それだったら、PHP5 専用にした方が潔い気もしますが。