Ktai Entry マニュアル

はじめに

プラグイン配布サイト: http://wppluginsj.sourceforge.jp/ktai_entry/

概要

Ktai Entry は、携帯電話・PHS 等から WordPress に投稿できるメール投稿用プラグインです。いわゆる「モブログ」ができます。

環境に応じて、以下のいずれかの投稿スタイルが選べます。

  1. 外部メールボックスに随時アクセス:
    投稿専用メールボックスに定期的にアクセスして新着メールがあれば取り込み、投稿処理を行う (wp-shot と同じ仕組み)。
  2. メール着信時に投稿スクリプトを起動:
    メールサーバー上に投稿専用アドレスを作り、そこにメールが到着したら投稿スクリプトを起動させる (wp-mta と同じ仕組み)。

対応環境

設置方法

  1. wp-shot を使っていた場合は、プラグインを停止してください。wp-mta を使っていた場合は、当該ファイルを削除してください。
  2. プラグインをダウンロードして展開し、ktai_entry フォルダーごとサーバーに転送します。ただし、README-ja.txt (本ファイル)、ktai_entry-ja.po 等の拡張子が po のファイル (言語リソースのソースファイル) は転送しなくて構いません。
  3. 投稿スタイルに応じてメールサーバーの設定をします。
    (外部メールボックスに随時アクセスの場合)
    投稿専用メールアドレスを設定します。
    1. 携帯用メールアドレスを準備・取得してください。できれば、他で使っているアドレスと兼用にするのは避けて、専用のメールアドレスにしてください。無料メールアドレスで構いません。
    2. 各種設定→投稿設定→「メールでの投稿」に、メールサーバー・ログイン名・パスワードを記入してください。
      ※ wp-shot で必要だった、wp-mail.php のリネームは不要です。wp-mail.php にアクセスしても 403 Forbidden になります。
    (メール着信時に投稿スクリプトを起動させる場合)
    投稿用の秘密のメールアドレスを作ります。
    1. メールアドレスとなる秘密の文字列を考えます。シェルで
      php -r 'echo md5(uniqid(rand(), true)) . "\n";'
      などとするといいいでしょう。
    2. メールサーバーにシェルログインし、.qmail-SECRET (qmail の場合)、もしくは .forward+SECRET (postfix の場合) というファイルを作ります (SECRET はさっき作った秘密の文字列)。これは qmail や postfix でサポートされている拡張メールアドレスの機能で、USER-secret@example.com または USER+secret@example.com というメールアドレスが有効になります。qmail の場合、秘密の文字列は英小文字と数字だけにしてください (大文字やドットは無効)。
    3. ファイルの中身は以下のようにします。(PHP のパスはサーバーに応じて調整してください)
       | /usr/bin/php /(WordPress へのパス)/wp-content/plugins/ktai_entry/inject.php
    ※要は、秘密のメールアドレスにメールが着信したら inject.php が起動されるようにします。自宅サーバーをお使いの方ならば、他の設定方法にもチャレンジしてみてください。
  4. 自分の WordPress サイトに管理者ログインして、新規にユーザーを作り、メールアドレスとして、携帯電話のメールアドレスを入力します。登録ユーザーのメールアドレスのみ投稿できるようチェックしているためです。メール送信してすぐ公開したい場合は、権限を「作成者 (author)」以上としてください。それ以下の権限の場合、「レビュー待ち (pending)」または「下書き (draft)」になり、編集者 (editor) 以上の権限を持つユーザーによる公開処理が必要となります。
  5. 使用しているテーマファイルのスタイルシート (style.css) を編集して、以下のスタイルを追加します。こうすると、写真の右側に文章が回り込むようになり、写真の周囲に白い余白とグレーの枠がついてかっこよくなります。スタイルの内容は好みに応じて適宜変更して構いません。
    /* ----- Style for Ktai Entry ----- */
    .photo {
    	padding-right:6px;
    	float:left;
    	line-height:110%;
    	font-size:0.85em;
    	text-indent:0;
    }
    .photo img {
    	background:white;
    	margin:0 4px 4px 0;
    	padding:3px;
    	border:1px solid #999;
    }
    .photo-end {
    	clear:left;
    }
    /* ---------- */
    wp-shot を使っていた場合、wp-shot/style.css の内容も、お使いの style.css に追記しておいてください (でないと、過去のメール投稿写真のスタイルが崩れます)。
  6. Ktai Entry プラグインを有効にします。
  7. サイト管理画面の各種設定→メール投稿でオプションを変更します。基本的にはそのままで問題ありません。

以上で完了です。

プラグインの撤去

プラグインの使用を中止して、撤去するには以下の手順で行なってください。

  1. プラグインを無効にします。これにより、設定値がデータベースから削除されます。
  2. FTP ツール等で、wp-content/plugins から ktai_entry ディレクトリーを丸ごと削除します。
  3. 念のため、「投稿設定」→「メールでの投稿」で、メールサーバーの設定がデフォルト値 (mail.example.com 等) に戻っていることを確認してください。戻っていなければ、すべて空白にしておいてください。

使用方法

携帯電話から、投稿専用メールアドレス (上記で準備したメールアドレス) に投稿するだけです。送信したメールを元に新規投稿を作成します。

投稿タイトル
メールの題名 (Subject)
投稿日時
Date フィールド
投稿作成者
差出人 (From) アドレスに対応する登録ユーザー
公開ステータス
投稿作成者が「作成者 (author)」以上の権限を持つ場合は「公開」です。「投稿者 (contributor)」以下の場合は、「レビュー待ち (pending)」(WordPress 2.3 以降) または 「下書き (draft)」(WordPress 2.2.3 以前) となります。
投稿スラッグ
時分秒を繋げた6ケタの数字 (同じ数字が存在するときは -2, -3,... と追番がつきます)
カテゴリー
デフォルトは、管理パネル→各種設定→投稿設定の「メール投稿時のデフォルトカテゴリー」。CAT: コマンド (後述) で変更可能です。
投稿本文
本文が投稿本文になります。ただし、カテゴリー指定指示・キーワードタグ指示、画像回転指示などのコマンドおよび、「-- 」で始まる署名部分は削除されます。
写真つきメールの場合は、画像を切り出してファイルアップロード処理を行い、その画像を呼び出す a 要素および img 要素が埋め込まれます。

重複投稿を防ぐため、すでに存在する投稿日時と同じ Date フィールドを持つメールは読み込まれません。

カテゴリー指定

カテゴリー指定の方法

臨時的にカテゴリーを「メール投稿時のデフォルトカテゴリー」以外に変更したい場合は、メール本文のどこかに、

CAT:カテゴリーID
  または
CAT:カテゴリー名
と書きます。「CAT:」の文字列は行頭に書くことが必要です。複数のカテゴリーをコンマで区切って指定することも可能です。コロンやコンマの前後にスペースが入ってもかまいません。

カテゴリーの指定は、ID もしくは名前のどちらでも OK ですが、カテゴリースラッグ (URI に使われる文字列) は無効ですので、注意してください。例えば、

CAT:3
  または
CAT: 旅行の計画
は OK ですが、
CAT: plans
は無効ということです。

カテゴリー追加の方法

投稿時のカテゴリーを、「メール投稿時のデフォルトカテゴリー」の他に別途追加したい場合は、メール本文のどこかに、

CAT+カテゴリーID
  または
CAT+カテゴリー名
と書きます。「CAT+」の文字列は行頭に書くことが必要です。コンマで区切って複数のカテゴリーを追加することも可能です。

カテゴリー変更の方法

投稿時に「メール投稿時のデフォルトカテゴリー」を変更してしまうことが可能です。

CAT>カテゴリーID
  または
CAT>カテゴリー名
と書きます。「CAT>」の文字列は行頭に書くことが必要です。コンマで区切って複数のカテゴリーを記述可能ですが、変更対象となるのは最初のカテゴリーとなります (投稿には記載したすべてのカテゴリーが反映されます)。

CAT+>カテゴリーID
  または
CAT+>カテゴリー名
と書いた場合は、デフォルトカテゴリーの変更を行いますが、既存の「メール投稿時のデフォルトカテゴリー」も投稿に反映されます。つまり、既存のデフォルトカテゴリーと今回指定したカテゴリーの両方が指定されます。

キーワードタグ付与

キーワードタグを付与するには、メール本文のどこかに、

TAG:タグスラッグ名
と書きます。「TAG:」の文字列は行頭に書くことが必要です。複数のタグをコンマで区切って指定することも可能です。コロンやコンマの前後にスペースが入ってもかまいません。タグ名とタグスラッグ名が異なる場合、タグスラッグ名でないと既存タグとして認識されません。タグ名を書いてしまうと、新規にそのタグが作成されてしまいます。

画像回転

携帯端末で撮影した写真を90度左右に回転させることが可能です。あらかじめ携帯端末で回転させてから投稿することを推奨しますが、時間がないときや、回転させると画像の左右が欠けてしまう端末では、この機能が便利です。

(画像が1枚だけのとき)
メール本文のどこかに、
ROT:L
  または
ROT:R
と書きます。前者は左回転。後者は右回転です。「ROT:」の文字列は行頭に書くことが必要です。画像が大きいときは、回転させてからサムネールを作成します。
(画像が2枚以上のとき)
ROT:L
  または
ROT:R
とすると、すべての画像を同じ方向に回転します。
ROT:NLR
などとすると、1枚目は回転せず(N)/2枚目を左回転(L)/3枚目を右回転(R)します。画像の枚数だけ、N,L,R の文字列を書きます。文字数が画像の枚数より足りない場合は、足りない分を "N" があるとみなします。
ROT:2L4L
などとすると、2枚目を左回転/4枚目を左回転します。何枚目かを示す数字と回転方向を示す L,R の文字列を繰り返します。空白やコンマで区切ってはいけません。NLR 式の指定と 2L4L 式の指定は混在できません。混在させてしまったときは回転指示が無効になってしまいます。

制限事項

高度な設定・機能

post.php を編集することにより、メール投稿時を変更可能です。

独自フィルターフック

Ktai Entry は以下の独自フィルターフックを備えています。差出人アドレス確認の結果、画像リンクの XHTML 記述や、投稿本文の記述を自分好みに変更することができます。

my-hacks.php などにフィルター関数を記述し、同時に add_filter('image_link/ktai_style.php', '(フィルター関数名)', 10, 3); などと書けば、フィルターフックが有効になります。

retrieve_interval/ktai_entry.php
引数: $interval
外部メールボックスを読み出す間隔 (分単位) をフィルターします。0 にすると読み出ししません。
validate_address/ktai_entry.php
引数: $user_id, $address
差出人メールアドレスから、ウェブログ登録ユーザー ID を割り出した結果をフィルターします。登録ユーザー以外に別途許可したいアドレスがある場合や、投稿作成者は管理者に固定したい場合などに使います。
引数: $html, $id, $size
各画像を表示する XHTML をフィルターします。$htmlget_the_attachment_link() (WordPress 2.3 以前) または wp_get_attachment_link() (WordPress 2.5 以降) の結果です。$id は画像の post ID、$size は挿入する画像サイズで、サムネールを意味する FALSE (WordPress 2.3 以前) または medium, thumbnail のいずれか (WordPress 2.5 以降) です。
引数: $html, $content, $img
画像を挿入した投稿本文をフィルターします。$html は投稿本文、$content は画像挿入前のテキスト、$img は画像ごとの XHTML が入った配列です。

ログ機構

投稿がうまく処理されないときの問題点の洗い出し、不正アクセスの検出などのために、メール投稿処理のログを取ることができます。ktai_entry.php の 27 行目にある //define('KE_LOGFILE', 'logs/error.log'); のコメントを外します。すると、ktai_entry ディレクトリー配下の log ディレクトリーに error.log が作られます。念のため、手動で log ディレクトリーおよび error.log ファイルを作成して、chmod 777 および chmod 666 しておいた方が確実です。

外部メールボックスに随時アクセスの場合、メールチェックの度にログされますので、5分間隔の場合、1日で16000行以上記録されるかもしれません。

古いログの圧縮や削除は行ないませんので、logrotate(8) の対象にするか、手動で圧縮や削除を行なってください。そのまま放置すると、巨大なテキストファイルになり、問題が発生することがあります。

ktai_entry.php の 28 行目 //define('KE_DEBUG', TRUE); のコメントを外すとデバッグモードになり、さらに詳細な動作ログを取ることができます。管理パネルのメール投稿から、外部メールボックスの手動確認リンクをクリックした場合は、詳細な動作ログを画面でも確認できます。

ログメッセージは原則的に英語です。文字化けして読めない場合を避けるためです。簡単な英語ですので、がんばって読んでみてください。

他のメール投稿ツールとの相違点

他の WordPress 用メール投稿ツールとの機能・実装の違いは以下の通りです。

動作比較表
Ktai Entry wp-mta wp-shot MobG1.0 MobG 0.4 wp-mb_mail wpmobExpress
許可アドレスの指定
(U: 登録ユーザー/F: 設定ファイル)
UUUU, FU, FUF
不許可アドレスからのメール 残す/返送返送残す削除削除削除残す
メール送信後に投稿処理が不要 ● ※1● ※1△ ※2- ※3● ※4
APOP 対応 (対象外)△ ※5
SSL 対応 (対象外)
管理パネルでの設定 (設定ファイル編集が不要)
画像はメディアライブラリに登録
画像は uploads ディレクトリーに保存
画像の回転
複数カテゴリーの指定
キーワードタグの付与
出力テンプレートに対応
※1: POP3 読み込みは画面出力と非同期で行なわれるため、サイト表示が待たされることはない。そのかわり、メール投稿がすぐ反映されないことがある。
※2: サーバーで cron 設定が必要。
※3: 別配布の STDIN 版では対応。
※4: POP3 読み込み完了まで画面出力が行なわれない。
※5: ソースコードの微修正が必要。

今後の予定

改版履歴

ver 0.7.1 (2008-04-29)
ver 0.7.0 (2008-04-23)

以上