wpmob – WordPressでMOBLOG 2005/09/23

【現在のバージョン】

1.4 (2006/11/28) [download]

【動作環境】

・PHP 4.2.4以降
・WordPress ME 1.5.1.3
・XML-RPCを使用しているため xmlrpc.php が有効になっている必要があります
・ImageMagickもしくはGDライブラリ (必須ではありませんがあれば画像の縮小やサムネイルの作成が出来ます)

※基本的にlolipop(http://lolipop.jp)でしか動作検証を行っておりません

【機能/特徴】

・当スクリプトは WordPressに携帯メール/ブラウザ経由で記事をエントリーすることを目的としています
・記事のカテゴリを指定することが出来ます(複数指定可)
・記事の投稿日時を指定することが出来ます
・画像ファイルを添付し公開することが出来ます
・画像を任意の大きさに縮小することが出来ます(要ImageMagick/GD)
・画像ファイルのサムネイルを生成することが出来ます(要ImageMagick/GD)
・画像を90度単位で回転することが出来ます(要ImageMagick)
・テンプレートに沿ったレイアウトの記事投稿が出来ます(複数画像添付時のレイアウト等が簡単になります)
・投稿用のメールと通常のメールが混在可能です
・記事の投稿処理時にPOPサーバ認証を行うこと出来るため心持ちセキュアな気分になれます
※質問等は最新版のエントリにコメントして下さい:-)
※メールの送信だけで記事の投稿が行えるwpmobExpressプラグインもあります

【使い方】


POP_SERVER, POP_USER_IDにて指定したアカウントに指定フォーマット(後述)でメールを送信して下さい




携帯やPCのブラウザからWebサイト上の wpmob.phpを開いて下さい
(※POP認証オプションを使用している場合はダイアログが表示されるのでPOPアカウントとパスワードを入力して下さい)




投稿可能なメールが存在する場合は保留指示/カテゴリ/テンプレート/投稿日時(有効の場合)/画像回転(有効の場合)の設定画面が表示されます
設定を確認または変更し「投稿」ボタンを押下して下さい (投稿処理が実行されます)




投稿処理が終了すると処理に関するログが表示されますので内容を確認して下さい

※上記の例はPCのメーラとブラウザを使用していますが携帯のメーラとブラウザでも問題ありません
メールを送信しただけでは投稿処理は行われません(メールの送信だけで投稿を行う場合はwpmobExpressプラグインをご使用下さい)
※送信元のメールアドレスが POP_ALLOW_ADDRESSに設定されていることを確認して下さい
※catlist.phpでカテゴリのIDを確認できます
※添付画像の有無などに合わせてテンプレート(後述)を用意して下さい

【使用上の注意点】

・設定の仕様上BLOGパスワードがスクリプトに素のまま載ってしまいます
  → メインの投稿者ではなくメール投稿用の投稿者を使用することをお薦めします

・投稿メールをいたずら目的の第三者に騙られてしまう可能性があります
  → 投稿を受け付けるメールアドレスを知られないようにしましょう

・投稿メール以外のメールは削除しない仕様ですが予期しない不具合により削除される可能性があります
  → 投稿を受け付けるメールアドレスは可能な限り投稿専用にしましょう

・wpmob.phpのアドレスを知り得る人物がPOPサーバへ届いているメールのタイトルを閲覧可能な状態になります
  → POP認証オプションを設定することで回避可能です

・カテゴリ一覧が catlist.phpのアドレスを知り得る人物に対し常に閲覧可能な状態になります
  → catlist.phpを個性的な名前に変えるかカテゴリIDをメモした後 catlist.phpを消しましょう

※これらのリスクを理解できる方のみ当スクリプトをご使用下さい※
※当文書を最後まで読んでも上記が意味するところを理解できない方は使用しないで下さい※

【既知の不具合】

・BLOGパスワードの暗号化保存に対応していません(スクリプトに素のまま載ります)
・投稿メールの厳密な認証を行っていません(ヘッダのFromフィールドと識別文字列による確認のみ)
・テンプレートに定義された画像ファイル数と実添付数が違っても無視してレイアウトします
・大量の投稿指示を行う場合に携帯電話ブラウザの表示容量を超えることがあります(容量オーバー対策は行っていません)

【インストール】

手順.1 XML-RPCを使用しているため wp.php と同じディレクトリにある xmlrpc.php を利用可能にして下さい
WP導入後に特に触っていなければ問題なく動きます
手順.2 配布アーカイブの中身をWebサーバの適当な公開ディレクトリに展開して下さい
WPのインストールディレクトリ等との関連は気にしなくても良いです
第三者からのアクセスが好ましくない性格のスクリプトですから個性的な名称のディレクトリに配置しましょう :-)
手順.3 配布アーカイブに含まれていた全ての*.phpファイルに実行権限(755辺り)を与えて下さい
手順.4 画像保存ディレクトリに書込可能権限が与えられているか確認して下さい
画像の保存が上手くいかないときは大抵の場合この手順の確認もれが原因です
手順.5 wpmob.config.php をエディタ等で開いて次項の説明を参考に設定項目をご自身の環境に合わせて書き換えて下さい
手順.6 catlist.php をエディタ等で開いて次項の説明を参考に設定項目をご自身の環境に合わせて書き換えて下さい
手順.7 以上です、以降の手順や注意点は先述の【使い方】を参考にして下さい。

【設定項目】

BLOG_USER_ID WP投稿者のログインユーザID
BLOG_PASSWORD WP投稿者のログインパスワード
暗号化していないのでその手の人達に読み取られてしまう可能性があります
BLOG_RPC_HOST blogのホスト名
“http://” や 末尾の “/” は付けないで下さい
BLOG_RPC_PATH xmlrpc.phpのパス
“/” から始まり xmlrpc.phpのファイル名まで記述して下さい
POP_USE_AUTH TRUE:POPサーバへのログイン認証を行う
FALSE:行わない
TRUEの場合は md5encode.php を書き換えてPOPパスワードの暗号化を行って下さい
FALSEの場合はPOPパスワードを暗号化していないのでその手の人達に読み取られてしまう可能性があります
POP_SERVER POPサーバ
POP_USER_ID POPサーバのユーザアカウント
POP_USE_AUTHをTRUEに設定している場合でも当項目は設定して下さい
POP_USE_APOP TRUE:APOP使用
FALSE:APOP不使用
POP_ALLOW_ADDRESS 投稿を受け付けるメールアドレス(カンマ区切りで複数指定可)
送信元メールアドレスによるチェックは確実な認証方法とは言えないので過信しないで下さい
POP_PASSWORD POPサーバのパスワード
POP_USE_AUTHが TRUEの場合 md5にて暗号化した文字列を設定して下さい
md5encode.phpを書き換えて表示することで暗号化することが出来ます
DIR_IMAGE 画像やサムネイルを保存するディレクトリ
wpmob.php からの相対パスまたは絶対パスで記述して下さい
DIR_IMAGE_URL 画像やサムネイルを保存しているURLパス
“http://” から記述して下さい
末尾に “/” を記述しないで下さい
PIC_USE_GD ImageMagickではなくGDライブラリを使用した画像編集を行う
(画像回転編集が無効になります)
※極力このオプションは使用しないで下さい
PIC_USE_ROTATE TRUE:画像の回転指示機能を有効にする(要ImageMagick)
FALSE:無効にする
PIC_SIZE 0:画像を縮小しない(またはImageMagickが無いとき)
1以上:画像の長辺側を基準として指定値に縮小する(要ImageMagick/GD)
PIC_THUMB_SIZE PIC_SIZEと同様の方式でサムネイル生成時の画像サイズを指定する(要ImageMagick/GD)
PIC_THUMB_MAINPIC_SIZE PIC_SIZEと同様の方式でサムネイル生成時のリンク先の画像サイズを指定する(要ImageMagick/GD)
PIC_USE_UNIQUENAME TRUE:画像ファイル名の先頭に一意のIDを付加する(ファイル名重複防止)
FALSE:付加しない(同一ファイル名が添付され投稿された場合上書きされます)
PIC_IMAGEMAGICK ImageMagickのパス
lolipopならばデフォルト値のままで問題ありません
USE_DATETIME TRUE:投稿日時指定機能を使用する
FALSE:使用しない(投稿処理時の日時を使用)
CATEGORY_COUNT 複数カテゴリ指定時の指定可能上限値(画面に表示されるカテゴリ選択コンボボックスの数)
1以上を指定します(3未満を推奨)
DEFAULT_TITLE メールのタイトルが空欄だった場合のデフォルト値
DEFAULT_TEMPLATE メール本文内にテンプレートの指定が無い場合のデフォルト値
DEFAULT_CATEGORYID メール本文内にカテゴリIDの指定が無い場合のデフォルト値
“カテゴリ名”ではなく”カテゴリID”なので注意 (カテゴリIDは数値です)
catlist.phpでカテゴリのIDを確認できます

【投稿メールのフォーマット(基本編)】

・メールのタイトルが記事のタイトルになります
・画像添付ファイルのサイズやファイル名の規約は特にありません
1行目に @WPMOB 以外の文字や空白などの空桁を入れないで下さい

※本文は以下のフォーマットにて送信して下さい (通常のメールと投稿用のメールを識別するためにも必要です)

————————————————————–
1行目→ @WPMOB
2行目→ 本文:2行目以降が本文扱いとなります
————————————————————–

[まとめ]
 ・1行目先頭に @WPMOB と記述する
 ・2行目以降は全て本文扱いとなる

【テンプレート機能】

・当スクリプトは事前に定義済みの形式に従って本文を編集する方式を採用しています
・テンプレート定義は最低でも1つ必要です
・テンプレートはHTML形式で作成して下さい
・メールで作成された本文の改行はスクリプトにて自動的に<br />に変換されます
・「テンプレートの定義=テンプレートファイルの作成」です(ファイルを作成してwpmob.phpと同じディレクトリに配置するだけでOK)
同梱しているテンプレート定義例(Nopic,1pic,2pic)も併せて参照しご自身のサイトに合わせたテンプレートを作成して下さい

【テンプレート機能 : テンプレート名】

使用可能な文字 半角英字・半角数字 0, 10, 1Pic, 2Pic, Nopic, etc…
使用不可能な文字 2バイト文字・全半角スペース
その他ファイル名として使用できない文字
常用, My Template, etc…

【テンプレート機能 : ファイル名】

・テンプレート名とテンプレートファイル名には以下のような関連があります

テンプレート名 対応するファイル名
0 template0.txt
10 template10.txt
1pic template1pic.txt
Nopic templateNopic.txt

※上記の規約に従った名称のテンプレートファイルを作成して下さい
※最も良く使うテンプレートをデフォルトテンプレートに指定しておくと便利です

【テンプレート機能 : 置換キーワードと作成例】

[置換キーワード]

<@IMAGEn> 添付画像本体のURLに置換されます
末尾の n には添付画像のインデックス番号を0から指定します
<@WIDTHn> 添付画像本体の横サイズ(ピクセル)に置換されます
末尾の n には添付画像のインデックス番号を0から指定します
<@HEIGHTn> 添付画像本体の縦サイズ(ピクセル)に置換されます
末尾の n には添付画像のインデックス番号を0から指定します
<@TWIDTHn> サムネイル画像の横サイズ(ピクセル)に置換されます
末尾の n には添付画像のインデックス番号を0から指定します
<@THEIGHTn> サムネイル画像の縦サイズ(ピクセル)に置換されます
末尾の n には添付画像のインデックス番号を0から指定します
<@IMAGEWINn> 添付画像サイズに合わせたポップアップウィンドウ(HTML)のURLに置換されます
末尾の n には添付画像のインデックス番号を0から指定します
テンプレートに当キーワードを記述するだけで自動的にHTMLファイルが画像保存ディレクトリに生成されます
<@THUMBn> 添付画像のサムネイルURLに置換されます
末尾の n には添付画像のインデックス番号を0から指定します
テンプレートに当キーワードを記述するだけで自動的にサムネイルが生成されます
<@TEXT> 本文のテキストに置換されます
本文の改行は <br />に変換されます

[作成例1](用途:添付画像が1つの場合)

<table width=’100%’>
   <tr>
      <td width=’20%’ valign=’middle’>
         <a href=”<@IMAGE0>” target=’_blank’><img src=”<@THUMB0>” border=”0″ /></a>
      </td>
      <td width=’80%’ valign=’middle’>
         <@TEXT>
      </td>
   </tr>
</table>

[作成例2](用途:添付画像が2つの場合)

<table width=’100%’>
   <tr>
      <td width=’20%’ valign=’middle’>
         <a href=”<@IMAGE0>” target=’_blank’><img src=”<@THUMB0>” border=”0″ /></a>
      </td>
      <td width=’20%’ valign=’middle’>
         <a href=”<@IMAGE1>” target=’_blank’><img src=”<@THUMB1>” border=”0″ /></a>
      </td>
      <td width=’60%’ valign=’middle’>
         <@TEXT>
      </td>
   </tr>
</table>

[作成例3](用途:添付画像が無い場合)

<@TEXT>

※同梱のテンプレート定義も併せて参照しご自身のサイトに合わせたテンプレートを作成して下さい
※テンプレートに定義された画像ファイル数と実添付数が違っても無視してレイアウトします

【補足:投稿メールのフォーマット(応用編)】 ※読まなくても困ることはありません

・各種設定をメールの1行目に記述可能です
・カテゴリとテンプレートの指定はメール本文で指定しなくても投稿処理時に別途指定可能です
1行目に設定値以外の文字や空白などの空桁を入れないで下さい


[応用形1] (カテゴリID 16 と 1 を指定してテンプレートはデフォルト値)

————————————————————–
1行目→ @WPMOB<c:16,1>
2行目→ 本文:2行目以降が本文扱いとなります
————————————————————–

[応用形2] (テンプレート 1を指定してカテゴリはデフォルト値)

————————————————————–
1行目→ @WPMOB<t:1>
2行目→ 本文:2行目以降が本文扱いとなります
————————————————————–

[応用形3] (指定の組み合わせ順序は自由です)

————————————————————–
1行目→ @WPMOB<c:16><t:1>
2行目→ 本文:2行目以降が本文扱いとなります
————————————————————–
1行目→ @WPMOB<t:1><c:1,16>
2行目→ 本文:2行目以降が本文扱いとなります
————————————————————–

[まとめ]
 ・<c:xxxxx> はカテゴリIDの設定
 ・<t:xxxxx> はテンプレートの設定
 ・設定は全て1行目に記述する
 ・1行目に空白などの空き桁を入れない
 ・2行目以降は全て本文扱いとなる
 ・カテゴリとテンプレート指定は本文に記述しなくとも投稿処理時に指定可能

【免責】

当スクリプトの使用により生じたいかなる損害/諸問題に対して、スクリプト作者はそれらの責を負いません。
全ての責はスクリプト使用者にあります、同意できない場合は当スクリプトを使用しないで下さい。

【再配布】

当スクリプトの一部または全部を使用・改造・再配布することは自由です。
但し、wpmob.php, catlist.php を除くスクリプトに関しては当該スクリプトが定める規約に準じます。

【謝辞】

当スクリプトの公開にあたり以下の方々への謝辞を述べさせて頂きます。

素晴らしいモジュールを公開して頂きありがとうございました。

   pop3-class.php version 1.1.0 (2002/07/06)
   Copyright (c) TOMO <groove@spencernetwork.org> (http://www.spencernetwork.org/)

   jcode.php version 1.35 (2004/04/10)
   Copyright (c) TOMO <groove@spencernetwork.org> (http://www.spencernetwork.org/)

   IXR – The Inutio XML-RPC Library – (c) Incutio Ltd 2002
   Version 1.61 – Simon Willison, 11th July 2003 (http://scripts.incutio.com/xmlrpc/)

各種プログラミング系サイトの管理者各位

wpmobを使用して頂いているBLOGGER各位

友人各位

   職場での内職を黙認してくれる K.M氏

【最後に】

当スクリプトが1人でも多くのBLOGGERのBLOG生活を充実したものに変化させますように。
当文書はそのためだけに存在しています。
Yuasa <yuasa@venus.dti.ne.jp>

16:ソフトウェア (Posted by Yuasa)