Yuriko.Net 個別記事

2008-06-17
晴れ

WordPress メール投稿プラグイン Ktai Entry 0.8.5 リリース

ゆりこ による 21:32:49 の投稿
カテゴリー: WordPressハック
タグ: , , , , , ,

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 で作り込んだつもりでしたが動作していなかった)
ダウンロード: ktai_entry085.tar.bz2 (76.2 KB)
バージョン 0.8.6 をリリースしました。

今回は投稿スラッグが固定の文字列になってしまうバグの修正および、重複投稿チェックの強化、外部メールボックスの読み出しトリガーの変更を行なっています。最後のものはちょっとチャレンジングな変更かもしれません。JavaScript オフの環境でも動作する反面、スタイルシートの呼び出しをきっかけとしているため、ブラウザーのキャッシュに入りやすい (==何回も実行されない可能性がある) という欠点があります。手元では問題なく動作していますが、環境によってはうまくメール取り込みが行なわれないかもしれません。

機能自体の強化ではありませんが、附属ドキュメントに「メール投稿されたら管理者にメールが届くようにしたい」というカスタマイズを掲載しました。作者としてはそういう機能の必然性を感じないため本体に取り込む予定はありませんが、必要な方はカスタマイズを行なってみてください。

今回は変更点やカスタマイズについて慎重にテストを行なっているので、たぶん問題なく動作するはずです。

トラックバック・コメント »

  1. ゴリ3さん:

    流れとしては、携帯から投稿してメールサーバが受信し、以下のコマンドが実行されて、WEBサーバ上でinject.phpが起動し、wordpressに書き込まれるイメージでよろしいのでしょうか?

    わたしの回答を再度よく読んで欲しいのですが、別サーバーの inject.php を起動させることは、ほぼ不可能なのであきらめてください。ssh でトンネルを作ってコマンドを実行させるとか、そういう手段を使わない限り無理でしょう。

    ゴリ3さんの環境で容易に実現可能と思われるのは、WordPress の動いているウェブサーバーから、メールサーバーへの定期的な POP3 アクセスによるメール取り込みです。本来ならば、附属ドキュメントに書いてある通り、Gmail や Yahoo! メールを使う場合などの設定と同様に行うだけで十分で、メールサーバー側からウェブサーバーの retrieve.php を起動させる必要はありません。
    しかし、できるだけ迅速なメール取り込みを行わせるために、メール着信時に retrieve.php にアクセスするような追加設定を提案しています。その意図がよく分からなければ、この追加設定はなくても構いません (ただし、メール送信から投稿処理までは多少タイムラグが発生してしまいます)。

    | /usr/bin/php /wget http://ローカルIP/(WordPress へのパス)/wp-content/plugins/ktai_entry/inject.php

    wget はコマンドであって php スクリプトじゃないので、php コマンドの引数にしても多分動きません。また、wget コマンドはふつうルートディレクトリーにはインストールされていないので、File Not Found になると思われます。コマンドラインの使い方をもうちょっとよく調べてみてください。

    | /usr/bin/lynx -source http://ローカルIP/(WordPress へのパス)/wp-content/plugins/ktai_entry/inject.php

    これも、遠隔で inject.php を起動しようとしているならば、動作しません。inject.php じゃなくて retrieve.php にアクセスしようとする目的ならば使えますが、source オプションはあまり意味がありません (retrieve.php の出力はそもそもテキストなので)。

    ゆりこからのコメント

上に戻る

※スパム対策プラグインの影響により、すぐにトラックバックが反映されない場合があります。お手数ですが、半日ほど待ってみてください。

コメント返信

※発言の責任を明確にするため「名無し」「通りすがり」「匿名希望」等の匿名は不可とします。捨てハンドルでもいいので必ず名乗ってください。
XHTML (使えるタグ): <a href="" title="" ktai=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt=""> .
※スパム対策プラグインの影響により、すぐにコメント内容が表示されない場合があります。お手数ですが、半日ほど待ってみてください。

上に戻る