MT5用携帯メール投稿プラグイン KetaiPost

NEW!!(v0.4.0) デザインのカスタマイズなどに対応しました。

GitHub:http://github.com/take-yu/KetaiPost
ダウンロード:http://github.com/take-yu/KetaiPost/downloads

都合により変更になりました。

GitHub:https://github.com/uzuki05/KetaiPost
ダウンロード:https://github.com/uzuki05/KetaiPost/downloads

 

blog-thumb-350x300-624
↑投稿記事サンプルの世界一可愛いうちの息子です。

 

Movable Type (MTOS) 5 にメール投稿機能を追加するためのプラグインです。 類似の機能をもつプラグインはすでに存在しますがライセンス上の問題により自作したので、せっかくなので公開します。フリー・ソフトウェアです。

個人・法人問わず無償で利用できます。将来有料になることもありません。
その代わりサポートは趣味レベルです。バグ取りは可能な限り対応しますが、機能追加等はなんともいえません。(お急ぎの場合や、確実に機能を追加したい方は有償でお受け致します。

 

特徴

  • 携帯メールでブログ記事の投稿が行えるようになります。
  • 写真付きメールを送信すると、アイテムに登録した上で記事に掲載します。複数枚の添付にも対応しています。(きちんと"ブログ記事アイテム"として登録します)
  • 写真は自動的にサムネイルを生成されます。(v0.40~はMTAssetThumbnailURLタグを利用)
  • サムネイルの大きさと形状(正方形に切り抜くか、そのまま縮小するか)を設定可能。(v0.40~はMTAssetThumbnailURLタグを利用)
  • 添付ファイルの表示位置などを自由に設定可能。通常のテンプレートモジュールを使ってカスタマイズを行うので、通常のテンプレート編集と何ら変わりません。(面倒な人はそのままで十分使えます)(v0.40~)
    • デフォルトで当ページへのリンクが付いてますが、嫌な人はこの機能を使って外して下さい。
  • 公開設定及びコメント・トラックバック受付可否はブログの設定を利用するので、たとえばメールで受け付け時点では下書きとし、確認してから公開といったことも可能です。
  • マルチブログ対応。・・・というかマルチブログ・マルチユーザ環境を強く意識しており、ブログ毎に受付メールアドレスを設定できます。
  • カテゴリ設定可能。ブログとあわせて、掲載カテゴリを指定できます。もちろん、同じブログにカテゴリ毎に別々の受け付けようメールアドレスを設定することもできます。
  • 送信元メールアドレスとMovable Typeのユーザーの関連づけが可能。同じ受付メールアドレスに送信しても、送信元によってAさん、Bさんの記事として登録することができます。
    • ユーザーの管理権限はMovable Typeのそれに準じます。これにより、Aさんはブログ1だけ投稿可能といったことができます。
  • 匿名ユーザーを設定可能。記事の投稿のみを許可したユーザーを作成し、不特定多数のユーザーからの投稿を受け付けることができます。
  • 投稿可能なユーザーを送信元メールアドレスで制限することができます。匿名ユーザーを作成しない場合、あらかじめ登録した送信元メールアドレスからのみ記事の追加が可能です。
  • メールの件名が省略された時のデフォルトの記事タイトルをブログ・ウェブサイト別に指定することが可能です。
  • 受付用メールアドレスに「拡張メールアドレス」を指定可能なので、1つのメールボックスでたくさんの受付用メールアドレスを設定することが可能です。(Gmail等、拡張メールアドレスが使用可能なメールサーバーを利用のこと)
    • メールの既読・未読管理は行っていないので、あまり大量のメールがあると受信処理が重くなります。可能なら専用のメールボックスを用意してください。
  • APOPの使用・不使用をメールボックス毎に設定可能です。
  • 写真に含まれるEXIF情報を使って、正しい向きに回転させて登録できます。(Image::ExifToolモジュールが必要)
  • Gmailを利用すれば、絵文字を利用可能。(Gmail以外の場合は、各キャリア網から抜けた時点で〓に変換されるため無理です)(私が持っているSO503i以外ではテストできていません。au/Softbankでは未知数。)
    • pure Perlの絵文字変換モジュール Encode::JP::Emoji を利用する為、共用サーバ等での絵文字利用も比較的容易です。
    • Encode::JP::Emoji 対応バージョンのmt4iと併用すれば、手軽にPC/携帯両対応の絵文字対応ブログを構築できます。
  • iショット等の携帯動画の掲載が可能。(ある程度の知識と環境が必要/要FFmpeg)
  • 個人法人問わず無料で利用できます。
  • 万年β(α?)テスト状態です。←重要

 

 

動作環境

  • cron が利用可能であること。
    • 利用できない方は、RunPeriodicTasksプラグインが使えるかも知れません。
  • Movable Type/MTOS バージョン 5.0.4
  • Perl 5.8.1 以上で以下のモジュールがインストールされているサーバーであること。(ものによってextlibへの配置でOK)

    また、POP3 over SSL (Gmailなど)のメールボックスを使用する場合は、次も必要です。

    • IO::Socket::SSL

    EXIF情報を使った写真の回転や位置情報の表示を行う場合は、次も必要です。

    • Image::ExifTool
    • Image::Magick (写真の回転を行う場合)

    Gmailを利用する方で、絵文字入りメールを掲載する場合は、Yusuke Kawasaki氏による次のモジュールが必要です。

    なお、 Mail::POP3Client 及び MIME-tools 、Encode::JP::Emoji については、extlib に配置することで動作します。(たぶん)

    • extlib/Mail/POP3Client.pm
    • extlib/MIME/*
    • extlib/Encode/JP/Emoji.pm
    • extlib/Encode/JP/Emoji/*
  • 携帯電話で撮影した動画を掲載するには、適切にコンパイルされたffmpegと、ビューワであるJWPlayerが必要です。
    • 共用レンタルサーバでの利用はいろいろな理由で難しいです。これだけで理解できない人は諦めましょう。
    • 持っている端末(SO503i/Xperia SO-01B)でしかテストしていません。

 

 

しくみ

KetaiPostはごくありふれた方法で記事の投稿を実現します。

投稿受付用メールアドレスを用意、POP3の接続情報を登録しておくことで、KetaiPostがメールボックスにアクセス、宛先に投稿受付用メールアド レスが指定されたメールが存在するかを確認します。

見つかったら、送信元のメールアドレスから投稿ユーザーを決定します。見つからない時はそのメールは破棄します。 ユーザーを特定できたら、そのブログに記事を追加できるか、権限の確認を行います。

投稿できることを確認したら、実際に記事を作成し、必要に応じてカテゴリ設定及びアイテムの追加を行います。 記事の投稿が完了したら、メールを削除します。

最後に、ブログの投稿設定において新しい記事の状態が「公開」(デフォルト)であれば再構築を行います。

 

 

インストール方法

メールボックスの用意

POP3でメールを受信可能な適当なメールアドレス(メールボックス)を用意します。

Gmailがオススメですが、その場合にはIO::Socket::SSLモジュールが利用可能であることを確認して下さい。

いたずらを防止するため、予想不可能なメールアドレスにします。 また、公開したくないメールを誤って記事として投稿してしまうリスクを考えて、KetaiPost以外で利用しない専用のメールアドレスが良いです。

拡張メールアドレス(@の前の+以降を無視する機能)が利用できれば、予測不可能なメールアドレスをたくさん用意することができます。

  例)hoge+xxxx@takeyu-web.com が hoge@takeyu-web.com に届く。
 

ダウンロード・配置

ダウンロードページ https://github.com/uzuki05/KetaiPost/downloads

KetaiPostディレクトリ(フォルダ)をpluginsディレクトリにそのままコピーしてください。

管理画面にアクセスすると、データベースの更新が自動的にはじまり、インストールが完了します。

必要モジュールが足りない場合は、便宜cpan等でインストールするか、extlibディレクトリへ配置して下さい。

 

インストール確認

ツール -> プラグインで一覧に「KetaiPost」が表示されることを確認して下さい。

 

KetaiPostの設定

受付用メールアドレス(送信先)とユーザー(送信元)の設定を行う必要があります。

  1. 「システム」メニューから、「設定」->「KetaiPost」を選びます。
  2. KetaiPostの管理画面が表示されるので、「新しい送信先メールアドレスを登録」のリンクを押します。
  3. メールでの投稿を受け付けるブログを選択ボックスから選び、「次へ」を押します。
  4. 投稿先のカテゴリやPOP3の接続情報などを記入し、「OK」を押します。
  5. 送信先メールアドレスの表に追加されたことを確認します。
  6. 「新しい送信元メールアドレスを登録」のリンクを押します。
  7. 投稿に使用するユーザーを選び、(携帯)メールアドレスを記入します。匿名ユーザーからの投稿を受け付ける場合には、「送信元メールアドレス」は 空白にしておきます。できたら、「OK」を押します。
  8. 送信元メールアドレスの表に追加されたことを確認します。

参考:KetaiPostをGmailで使うための設定:無料ダウンロード:タケユー・ウェブ

 

Taskの設定

定期的にメール受信処理が動くように設定します。 公式サイトのドキュメント(www.movabletype.jp/documentation /schedule_task_framework.html)を参考に設定して下さい。

設定例)

*/20 * * * * cd /home/hoge/www/mt; ./tools/run-periodic-tasks

 

投稿確認

実際に受付用メールアドレスにメールを送信し、しばらくして記事として追加されることを確認します。

 

つかいこなす

 

トラブルシューティング

  • なんかうまくいかない
    • システム→プラグイン→KetaiPostの設定より、デバッグログを有効にして下さい。不具合の原因を探る有用な情報を、システム→ツール→ログからみることができるようになります。
  • 記事が登録されない
    • デバッグログを有効にして確認して下さい。
    • cronがきちんと実行されていますか?実行されていたら「スケジュールされたタスク」というログが残ります。
    • メール受信に失敗していないか確認して下さい。メールボックスのアカウント名・パスワードはあっているか、POP over SSLが必要ならそれが利用できる環境か。
    • 投稿ユーザの設定が適切に行えているか。送信者のすべてのメールアドレスまたは特定のメールアドレスを、MTのユーザと関連づける必要があります。また、指定のMTユーザは目的のブログに対しての投稿権限が必要です。
  • 写真が載らない
    • ImageMagick等の必要モジュールがインストールされていますか?
    • 利用のサーバ環境によっては、Image::ExifToolモジュールがないと動かないことがあるようです。(僕のテスト環境ではExifToolがなくても動くのですが・・・)その場合は、Image::ExifToolをextlibに入れて下さい。
  • 記事は登録されるがページが更新(再構築)されない
    • デバッグログを確認して、記事の登録などのあとに「[KetaiPost][debug]ID:210を再構築しました。 」と、再構築のログがあるか確認して下さい。ない場合は、システムによって過負荷またはタイムアウトなどで強制終了された恐れがあります。その場合は、「RunPeriodicTasks」プラグインを使ってCGIで定期処理を行うようにすればうまくいくケースがあるようです。(cronより強制終了されにくい?)

 

ご注意

  • 無保証です。このプラグインを使用したことでいかなる損害が発生しても、制作者は一切責任を負いません。
  • すべての携帯電話などから正しく投稿できることを保証するものではありません。そもそもきちんと動くことも保証しません。

 

有償サポートについて

ご自身で設置・設定できない方向けに、設置代行サービスもございます。詳しくは以下をご覧ください。

設置代行サービス:無料ダウンロード:タケユー・ウェブ