wp-mta (メール投稿スクリプト)

初出日: 2007年1月24日 | 最終更新日: 2008年6月6日
投稿者: ゆりこ | パーマリンク

ご注意

このスクリプトは開発を中止し、後継プラグインとして「Ktai Entry」を開発しております。wp-mta をご利用の方には、こちらへの乗り換えをお願いいたします。

概要

wp-mta は、携帯電話・PHS から WordPress に投稿できるモブログ投稿用スクリプトです。厳密には、WordPress プラグインではありません。メールサーバーに仕込むスクリプトで、メールサーバーに投稿メールが到着したときに起動されるものです。

  • メールサーバーから push 型で起動するため、wp-mail のように投稿後ににブラウザーを起動したり、wp-shot のように別途 cron を動かしたりする必要がありません。
  • ブラウザが不要なので、メール送信できればキャリアおよび機種を問いません。
  • 画像を添付したメールに対応しています。画像は wp-content/uploads フォルダとは違うフォルダに格納します (WordPress の画像アップローダーとは別管理になります)。
  • 投稿時に画像を回転したり、大きい画像をサムネール化することが可能です。
  • 投稿時にカテゴリーを変更したり追加したりすることが可能です。
  • 設置するには、メールサーバーで .qmail ファイル、.forward ファイルの編集ができることが必要です。おそらくシェルアカウントが必要でしょう。

対応環境

  • qmail または Postfix を利用したメールサーバー。ただし postfix では動作確認を行なってないので動かないかもしれません。
  • .qmail/.forward でコマンド実行するとき WordPress のインストールディレクトリーが見えることが必要です。メールサーバーと WordPress が動いているウェブサーバーが同一であれば、まず OK です。サーバーが違う場合は絶望的ですが、可能な場合があるかもしれません。
  • WordPress 2.0 以降。WordPress ME 2.1.3 で動作確認していますが、おそらく本家版2.0 以降なら動くでしょう。
  • PHP 4 以降。ただし、動作確認は PHP5.2.1 で行なっていますので、PHP 4 ではバージョンによって動かないかもしれません。PHP 4.x をご利用の場合は、自己責任にてご利用をお願いします。

ダウンロード

設置方法

  1. スクリプトをダウンロードし、テキストエディタで開いて、設定項目を編集します。
    • 画像ファイル保存ディレクトリー (WPMTA_PHOTO_DIR)
    • サムネールの長辺側サイズ (WPMTA_THUMBNAIL_MAX_SIZE)
      画像の縦横どちらかがこのサイズより大きい場合は、長辺側がこのサイズになるよう縮小されます。
    • 画像群の前後につける HTML 文字列 (WPMTA_IMAGES_HEADER, WPMTA_IMAGES_FOOTER)
    • テキストの前後につける HTML 文字列 (WPMTA_TEXT_HEADER, WPMTA_TEXT_FOOTER)
    • カテゴリー変更指示文字列 (WPMTA_SET_CATEGORY)
    • カテゴリー追加指示文字列 (WPMTA_ADD_CATEGORY)
    • 画像回転指示文字列 (WPMTA_ROTATE_IMAGE)
    • これ以後を署名として削除する文字列 (WPMTA_DELIM_STR)
  2. PEAR::Mail::mimeDecode.php がサーバーにインストールされているか確認します。もし、インストールされていなければ、PEAR の配布サイトからダウンロードしておきます。
  3. wp-mta.php を WordPress のインストールディレクトリーに転送します (wp-mail.php と同じ階層)。必要なら mimeDecode.php も同じディレクトリーに転送します。
  4. 投稿用の秘密のメールアドレスを作ります。
    1. メールアドレスとなる秘密の文字列を考えます。シェルで以下のようにするといいいでしょう。
      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
  5. 自分の WordPress サイトに管理者ログインして、新規にユーザーを作り、メールアドレスとして、携帯電話のメールアドレスを入力します。登録ユーザーのメールアドレスのみ投稿できるようチェックしているためです。
  6. テーマファイルのスタイルシートを編集して、以下のスタイルを追加します。こうすると、写真の右側に文章が回り込むようになり、写真の周囲に白い余白とグレーの枠がついてかっこよくなります。
    /* ----- wp-mta CSS code ----- */
    .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;
    }
    /* ---------- */

以上で完了です。

使用方法

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

投稿時のカテゴリーは、管理画面→オプション→投稿設定の「メール投稿時のデフォルトカテゴリー」に従います。

カテゴリー指定の方法

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

CAT:カテゴリーID
CAT:カテゴリー名

「CAT:」の文字列は行頭に書くことが必要です。複数のカテゴリーをコンマで区切って指定することも可能です。コロンやコンマの前後にスペースが入ってもかまいません。カテゴリーの指定は、ID もしくは名前のどちらでも OK ですが、カテゴリースラッグ (URI に使われる文字列) は無効ですので、注意してください。

以下は OK です。

CAT:3
CAT: 旅行の計画

以下は無効です。

CAT: plans

カテゴリー追加の方法

投稿時のカテゴリーを、「メール投稿時のデフォルトカテゴリー」から追加したい場合
は、メール本文のどこかに、以下のように書きます。

CAT+カテゴリーID
CAT+カテゴリー名

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

画像回転の方法

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

画像が1枚だけのとき
メール本文のどこかに、以下のいずれかのように書きます。

ROT:L
ROT:R

前者は左回転。後者は右回転です。「ROT:」の文字列は行頭に書くことが必要です。画像が大きいときは、回転させてからサムネールを作成します。

画像が2枚以上のとき
ROT:L
ROT:R

とすると、すべての画像を同じ方向に回転します。

ROT:NLR

などとすると、1枚目は回転せず/2枚目を左回転/3枚目を右回転します。画像の枚数だけ、N,L,R の文字列を書きます。文字数が画像の枚数より足りない場合は、足りない分を “N” があるとみなします。

ROT:2L4L

などとすると、2枚目を左回転/4枚目を左回転します。何枚目かを示す数字と回転方向を示す L,R の文字列を繰り返します。空白やコンマで区切ってはいけません。

NLR 式の指定と 2L4L 式の指定は混在できません。混在させてしまったときは回転指示が無効になってしまいます。

注意事項

  • 画像を回転させたりサムネールを作った場合は、EXIF データーが失なわれます。GPS 情報を付与していた画像を回転させた場合、Ktai Location では位置情報が読めません (サムネールを作るだけの場合は読み取られます)。wp-mta の今後のバージョンで改善予定です。
  • レンタルサーバーの場合は、動作しない場合が非常に多いです。メールサーバーとウェブサーバーが別だったり、.qmail/.forward の編集ができなかったり、任意のメールアドレスを追加できなかったり、関門が多いためです。
  • 自宅サーバーの場合は、うまく設置できることが多いでしょう。がんばってください。
  • 設置直後は、メールのエラーによるメールループを発生させやすいので、テスト投稿のあとはメールログをよく確認してください。

改版履歴

ver 0.3.1 (2007-04-19)
投稿スラッグを指定するようにしました。時刻を元にした6ケタの数字です。
WordPress のアドレス (get_settings(’siteurl’)) と、ウェブログのアドレス (get_settings(’home’)) が違う環境において、画像タグの URI がおかしいバグを修正しました。
ver 0.3.0 (2007-01-24)
画像の回転機能を追加。
WordPress コアの修正なしに動作できるようにした。
WordPress Plugins/JSeries で配布するようにした。
ver 0.2.1 (2007-01-17)
サムネール作成機能がバグっていたので修正。
(一般公開せず)
ver 0.2.0 (2006-12-17)
WordPress 2.0.5 の wp-mail.php をもとにコードを大幅に書き替え。
ただし WordPress コアの修正が必要になった;-)
ver 0.1.0 (2006-08-09)
新規リリース。SOMY.JP 版 wp-mail.php を改造。

作者のウェブログ記事