Ktai Entryをさくらインターネットで活用してみる

<!–2008/11/13 追記

本記事は誤爆でした。正解記事はこちら。
–>
Ktai Entryってのは、このブログでも使ってるWord Pressのプラグインで、携帯電話等からメールで記事を投稿できるようにするモノなのだ。

Ktai Entryは数ヶ月前から既に使ってたんだけど、メール送信したタイミングでブログに反映させることができなくて困ってたのだ。Ktai Entryのサイトにある「メール着信時に投稿スクリプトを起動させる場合」ってのを読むと、MTAがqmailとpostfixの場合の設定方法は書いてあるけど、さくらインターネットはsendmailなので設定方法が書いてなく、しかもネット検索してもさくらインターネットでメール送信時に投稿する方法は見つけられなかったのだ。

そんなわけで、色々試してみたり調べたりして見つけたのがwgetを使う方法だったのだ。
その方法とは・・・

1. Ktai Entryをインストール(プラグインに追加)し、メール投稿できるようにする。もちろん投稿受付メールアドレスはさくらインターネットで作成したアドレスを使用する。とりあえず、Word Pressのダッシュボードの「設定」→「メール投稿」の「POP3読み込み間隔」は「15分」を選択しておく。
2. メールで記事を投稿して、サイトに記事が投稿されることが確認できたら、「POP3読み込み間隔」を「しない」を選択。そして「しない」の右に書かれている「すぐにメッセージを読み出す。」のリンク先URLをメモっておく。
3. さくらインターネットのサーバコントロールパネルの「メールアドレスの管理」で投稿受付メールアドレスの「メール転送」設定をして、すぐに「転送先メールアドレス」を削除する。(この作業によってメールボックスに .mailfilter というファイルが作成される)
4. FTPクライアントでさくらインターネットのサーバーに接続して、MailBoxディレクトリの投稿受付メールアドレスのディレクトリ内にある .mailfilter ファイルをダウンロード。テキストエディタで開いて次のように記述して保存する。

cc “| /usr/local/bin/wget –spider http://www.hoge.sakura.ne.jp/hogehage/retrieve.php?_wpnonce=hogehige”

※http://以降の部分には、2でメモった「すぐにメッセージを読み出す。」のリンク先URLを記述する。
5. FTPクライアントで .mailfilter ファイルを元のディレクトリにアップロードする。

以上、終了。

ミソはKtai Entryのサイトに書かれている inject.php は使わずに retrieve.php を使うことと、 wget を使うこと。
ちなみに、 inject.php と retrieve.php の違いや wget の詳細についてはよく知らないので(笑)別のサイトで調べてね。
あと、この方法で設定して何か問題が起きても責任は取れませんので自己責任でやっちゃってください。

Spread the love
  •  
  •  
  •  

4 Responses

  1. Ktai Entry のご利用ありがとうございます。残念ながら、この手法は12時間経由すると _wpnonce のキーが変更されてしまうため、無効になってしまいます。

    sendmail であれば、postfix とほぼ同様の手法が使えるはずです。要は、メールが着信したら inject.php スクリプトを起動できればいいのです。再度チャレンジしてみてください。

  2. ゆりこ様

    コメントありがとうございます。
    このキーは定期的に変更されるんですね〜知りませんでした。

    同じ方法(wget)でinject.phpを実行してみましたがエラーになってしまって投稿されませんでした。
    inject.phpを改造してみようかな〜と思いながらも、別の簡単な方法はないものかとネット検索してみてるのですが・・・

    さくらでKtai Entryを使ってる方々は一体どうしてるんですか〜〜?

  3. 同じ方法(wget)でinject.phpを実行してみましたがエラーになってしまって投稿されませんでした。

    それは無理です。inject.php は標準入力からメール内容を読み取るため、wget でアクセスするのは意味がありません。あくまで、.forward, .qmail などから直接実行されることが前提です。単純に、
    cc “| /PATH/TO/WP/wp-content/plugins/ktai_entry/inject.php"
    とやればいいはずです (/PATH/TO/WP はもちろん適切なパスに読み換え)。

  4. ゆりこ様

    再びありがとうございます。

    それは無理です。inject.php は標準入力からメール内容を読み取るため、wget でアクセスするのは意味がありません。

    というのは、プログラムを読んで何となく分かってはいました。HTTP経由でアクセスすると、権限エラーになるんですよね。
    でも、どうやってもうまく動かないので、藁にもすがる思いで(笑)試してみました。

    で、結局 .mailfilter の中に教えていただいた通りに書いてみましたが、ダメでした。