2006-08-09

push型モブログ投稿スクリプトwp-mta.php

yuriko による 00:53:37 の投稿
カテゴリー: WordPressハック,サイト更新情報
タグ: , ,

ウチで使っているモブログ投稿スクリプトは、wp-mail.php サムネイル+機能強化版を改造して使っているわけですが、その改造版も wp-eznavi.php 改造版にならって配布することにします。

wp-mta.tar.gz (SHA1 ダイジェスト: 700da25248e285cc4165a37f71617bd4a3fb621f)
(うっかり消してしまったので、2006-12-02 17:35 現在ダウンロードできません復活させました)
WordPress Plugins/JSeries からダウンロードしてください。

7月28日〜30日の3-3-SUN フリーきっぷ旅行で使っていたものそのままではなく、コードをいじってあるため、バグを作り込んでいる可能性はあります:-)

概要

  • その他のモブログスクリプトと違って、メールサーバーから push 型で起動します。いちいちブラウザで wp-mail.php を呼び出す必要はありません。
  • ブラウザが不要なので、メール送信できればキャリアおよび機種を問いません。
  • 設置するには、メールサーバーへのシェルアカウントが必要です。
  • POP で読み出す処理はコメントアウトしてあるので、ソース修正すれば POP 読み出しタイプに改造可能。

設置方法

  1. スクリプトをダウンロードし、テキストエディタで開いて、設定項目を編集します。ウェブログの文字コードが EUC-JP の場合は、EUC-JP コードで保存し直してください。
    • 画像ファイル保存ディレクトリ
    • 画像ファイル保存ディレクトリを日付別にサブフォルダを作るかどうか
    • 画像の前後に挿入する HTML 文字列
    • 画像ライブラリは GD にするか ImageMagick にするか
    • などなど
  2. wp-mta.php を WordPress のインストールディレクトリーに転送します。
  3. 投稿用の秘密のメールアドレスを作ります。
    1. メールアドレスとなる秘密の文字列を考えます。シェルで php -r 'echo md5(time()) . "\n";'php -r'echo md5(uniqid(rand(), true)) . "\n";' などとするといいいでしょう。
    2. メールサーバーにシェルログインし、.qmail-SECRET (qmail の場合)、もしくは .forward+SECRET (postfix の場合) というファイルを作ります (SECRET はさっき作った秘密の文字列)。これは qmail や postfix でサポートされている拡張メールアドレスの機能です。qmail の場合、秘密の文字列に大文字やドットが含まれていると動作しないので、英小文字と数字だけにするのが無難です。
    3. ファイルの中身は以下のようにします。
      | php /(WordPressへのパス)/wp-mta.php
  4. 自分の WordPress サイトに管理者ログインして、新規にユーザーを作り、メールアドレスとして、携帯電話のメールアドレスを入力します。登録ユーザーのメールアドレスのみ投稿できるようチェックしているためです。

以上で完了です。

使用方法

携帯電話から、さきほど作った秘密のメールアドレス (USER-secret@DOMAIN または USER+secret@DOMAIN) に投稿するだけです。写真つきメールの場合は、wp-mta.php 内部で指定した画像フォルダに画像が保存され、その画像を呼び出す img タグが埋め込まれます。

トラブルシューティング

(後で執筆予定)

SOMY.JP 版 wp-mail.php からの改造点

SOMY.JP 版 wp-mail.php からの改造点をリストアップしておきます。多数のバグ修正とコード改善を行なっています。

  • 日付別サブフォルダが作られる機能を動くようにした。(元スクリプトは未完成だった)
  • POP3 処理は全部コメントアウト。
  • mimeDecode.php は、サーバーにインストールされている PEAR パッケージを使うようにした。(PEAR の Mail_mimeDecode がインストールされてない場合は、サーバー管理者にインストールしてもらってください :-)
  • 投稿許可ユーザーのチェックは、自分のウェブログの登録ユーザーである場合のみに限定した。スクリプト中に記述した許可アドレスリストを使う機能はコメントアウト。
  • From アドレスの抽出を RFC2822 に適合。(どんな変なメールアドレスでもOK)バグっていました。コメントがネストされている場合と、atom 中にコメントがある場合に正しく抽出できません。
  • 許可されてないメールアドレスから投稿の場合、何もしないで終了させるようにした。(もともとは、無許可投稿でも添付ファイルの画像をサーバーに保存してしまっていた)
  • 署名の削除は、最初のカット文字列からではなく、一番最後のカット文字列から後ろを削除するようにした。
  • 本文の前後に入れる HTML から div タグを削除。画像と本文の両方に float:left があるとWindows IE で表示がおかしくなることがあったので、画像だけに float:left が入るようにするため。
  • 添付ファイルの名前にドットが複数含まれるとき、保存されるファイル名がおかしくなるバグを修正。(explode('.',$img_src) じゃなくて pathinfo コマンドで拡張子を抽出した)
  • JPEG サムネールを作るときの画質設定 WPMAIL_JPEG_QUALITY は廃止。(imagejpeg 関数のデフォルト 75% に決め打ち)
  • ImageMagick のパスが決め打ちだったのをスクリプトの冒頭でパスを指定するようにした。
  • 変数名は分かりにくいものが多かったので、大幅に変更。(mail_addless なんて恥ずかしいものは退治 :-)
  • PHP4 では動かないようです。

本当なら、管理画面で各種項目を設定できた方がスムーズでしょうが、それは今後の勉強次第ということで……。秘密のメールアドレスを設定する部分も管理画面で作れたらいいですが、それは UNIX パーミッションの仕組み上、たぶん無理です。

コメント・ピン通知 »

  1. 【備忘録】【WordPress ME】push型モブログ投稿…

     先日、拙作WordPressプラグイン「wp-eznavi」の改造版を作成していただきましたyuriko様が、またまた凄い改造品を出品されました!
    ●push型モブロ (more…)

    TSJ付゛録゛IIからのトラックバック — 2006-08-14 (月曜日) @ 12:28:35
  2. 「wp-mta.php」設置成功ならず(ToT)…

     先日予告いたしましたとおり、「wp-mta.php」の導入を試みました。
     ちなみに「wp-mta.php」についてはこちらから。
    ●push型モブログ投稿スクリプト (more…)

    TSJ付゛録゛IIからのトラックバック — 2006-08-19 (土曜日) @ 13:06:41
※スパム対策プラグインの影響により、すぐにトラックバックが反映されない場合があります。お手数ですが、半日ほど待ってみてください。

上に戻る

コメント投稿

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

上に戻る