RemoteRoom >

実用すくりぷとん clippic (ver.20040313)

update:
© 2004 OHKUBO Masahiko <mah@remoteroom.jp>

もくじ

1. clippic とは

携帯カメラ便り (clippic デモページ)

clippic は,iショット (NTT DoCoMo)・写メール (vodafone)・フォトメール (au) など,カメラ付き携帯電話で撮った画像を,簡単にウェブ公開するためのプログラムセットです。
とても大げさにいうと ヤプース! (yapeus) を自前で構築していくものです。掲示板よりも写真日記帳のような,個人寄りのイメージ。私は 携帯カメラ便り で使っています (J-P51 からメールで更新中)。

次の二つのプログラムが連携して働きます。

clippic_mail.pl/clippic_mail.exe
ユーザが使っているメールサーバに POP アクセスし,カメラ付き携帯電話から届いているメールを取得,画像などを抜き出してウェブサーバに FTP 転送する Perl スクリプト。clippic_mail.exe は Windows 用実行ファイルに変換したもの。
clippic_list.cgi
ウェブサーバに蓄積された画像を一覧するための CGI プログラム (Perl スクリプト)。現在は JPEG 形式にのみ対応。

1.1. 特徴

  1. メールの取得からウェブへのアップロードまで,プログラムを起動するだけの簡単操作です。
  2. サイトの好きなところに,常に最新のメール画像・テキストを表示しておくことができます (テキスト挿入は通常,SSI 利用時のみ可ですが,外部 JavaScript として読み込むか iframe を利用する手もアリかと)。
  3. ページのデザインは,テンプレートと CSS ファイルを編集してまぁまぁ自由に変更することができます。
  4. メール画像・テキストを,月別や Subject で分類して表示したり,テキストのキーワード検索ができます。
  5. Subject が都道府県名で始まる地名らしき文字列になっていた場合には地図サイトへ,その他の場合はたとえば検索サイトへ,リンクを自動で張る機能があります。
  6. アイデア次第で便利な,メールヘッダの内容をユーザ定義で置換して表示するエイリアス機能があります。

1〜2 は clippic_mail.pl/clippic_mail.exe,3〜6 は clippic_list.cgi の特徴です。

2. 手に入れる

2.1. ダウンロード

配布アーカイブ最新版をダウンロードしてください。最新版のファイルサイズは 1MB 弱です。

■ 配布アーカイブ:
最新版 過去版
zip 形式 clippic_20040313.zip 貯蔵庫 に置いています。
tar.gz 形式 clippic_20040313.tar.gz

2.2. ライセンス・免責事項

clippic はフリーウェアです。利用に際して,ユーザが具体的な対価を支払う義務はありません。

このプログラムを使用することにより生じた損害について,作者はいかなる理由においても責任を負いません。ユーザの責任においてお使いください。また,作者にバージョンアップを続ける義務はありません。

対価に関しては,もしも気が向きましたら……
  1. 何らかの形,たとえば金銭・書籍・のみくいなどでの寄付をしていただける方がいらっしゃいましたら,気軽に <mah@remoteroom.jp> までご一報ください。

2.3. 記事掲載・書籍収録について

記事掲載・書籍収録の際の事前連絡は必要ありません。事後にでもご連絡いただけたら幸いです。

3. 使ってみる

3.1. 動作環境

a. clippic_mail.pl/clippic_mail.exe (メール処理プログラム)

clippic_mail.pl
Perl (5.004 以上) がインストールされた,インターネットに接続されているマシンが必要です。
clippic_mail.exe
インターネットに接続されている Windows マシンが必要です。

どちらのプログラムも,メールサーバに POP アクセスし,ウェブサーバに FTP アクセスします。

b. clippic_list.cgi (画像一覧 CGI プログラム)

Perl (5.004 以上) がインストールされた,CGI プログラムが実行可能なウェブサーバが必要です (自宅サーバや,自作 CGI プログラムを動作させることができるプロバイダのサーバなど)。

3.2. 設置

ダウンロードしたアーカイブを展開すると,以下のファイルが出てきます。
これらを二カ所に分けて設置していきます。

■ アーカイブから展開されるファイル:
ファイル・ディレクトリ名 内容
clippic_mail.pl clippic のメール処理プログラム
(clippic_mail.exe は Windows 用実行ファイル)
clippic_mail.exe
clippic_mail_user.cgi clippic_mail の設定ファイル
clippic_mail_user_ssi.txt clippic_mail がウェブサーバに転送する SSI 用ファイルのテンプレート
clippic_list.cgi clippic の画像一覧 CGI プログラム
clippic_list_user.cgi clippic_list の設定ファイル
clippic_list_user.html clippic_list が生成する画像一覧ページのテンプレート
clippic_list_user_popup.html clippic_list が生成する画像ポップアップページのテンプレート
clippic_list_user.css 画像一覧ページ・画像ポップアップページに用いる CSS ファイル
clippic_common.pl clippic プログラム共有ライブラリ
readme_sjis.txt 説明書き
Net/* 展開状態の Net モジュール
jcode.pl 日本語文字コード変換ライブラリ jcode.pl
© 1995-2000 Kazumasa Utashiro (一次配布元)
mimer.pl, mimew.pl 展開状態の mime_pls
archive/mime_pls202.tgz MIME エンコード・デコードライブラリ mime_pls アーカイブ
© 1993-94,1997 Noboru Ikuta (一次配布元)
archive/libnet-1.17.* Net モジュールアーカイブ
© 1996-2000 Graham Barr (一次配布元)

a. clippic_mail

任意のマシン (自宅サーバや PC など) に下記のファイルをこれから設置していきます。

■ 自宅サーバ・PC などに設置するファイル:
ファイル・ディレクトリ名 推奨パーミッション 設定・編集の必要
clippic_mail.pl 744 (-rwxr--r--) あり
clippic_mail_user.cgi 600 (-rw-------) あり
clippic_mail_user_ssi.txt 600 (-rw-------) お好みで (特殊タグ)
clippic_common.pl 644 (-rw-r--r--) -
Net/* - -
jcode.pl 644 (-rw-r--r--) -
mimer.pl, mimew.pl 644 (-rw-r--r--) -

もし Windows マシン上で実行するのであれば,下記のファイルを設置していきます。

■ Windows マシンに設置するファイル:
ファイル名 設定・編集の必要
clippic_mail.exe -
clippic_mail_user.cgi あり
clippic_mail_user_ssi.txt お好みで (特殊タグ)

関係するファイルを以下のように編集します。
なお,clippic での「メール画像ファイル」というのは,メールに添付されていた画像ファイルそのものを,「メールテキストファイル」というのは,clippic_mail.pl/clippic_mail.exe が生成するメールヘッダ情報と本文を収めたテキストファイルを指します。

clippic_mail.pl
一行目「#!/usr/bin/perl」を,使用する Perl インタプリタにあわせて変更してください (フルパスで記述)。
clippic_mail_user.cgi
テキストファイルになっています。中に書かれたコメント文にしたがって設定をカスタマイズしてください。
clippic_mail_user_ssi.txt
とりあえず現状のままにしておきしょう。ウェブサーバ側で SSI を利用する際に clippic の特殊タグ に従ってカスタマイズしてみてください。

編集し終わったら,clippic_mail を動作させるマシンに clippic 用のディレクトリを作成して,clippic_mail の実行権限でそのディレクトリに書き込みできるように,ディレクトリのパーミッションを変更します (clippic_mail はログファイルを生成するので)。
そしてファイルを転送し,必要とあれば各ファイルのパーミッションを推奨のものに合わせておいてください。

b. clippic_list

ウェブサーバの任意の場所に,下記のファイルをこれから設置していきます。

■ ウェブサーバに設置するディレクトリ・ファイル:
ディレクトリ名 ファイル名 推奨パーミッション 設定・編集の必要
(任意の名前) - 777 (drwxrwxrwx) -
- clippic_list.cgi 755 (-rwxr-xr-x) あり
- clippic_list_user.cgi 644 (-rw-r--r--) あり
- clippic_list_user.html 644 (-rw-r--r--) お好みで (特殊タグ)
- clippic_list_user_popup.html 644 (-rw-r--r--) お好みで (特殊タグ)
- clippic_list_user.css 644 (-rw-r--r--) お好みで
- clippic_common.pl 644 (-rw-r--r--) -
- jcode.pl 644 (-rw-r--r--) -

関係するファイルを以下のように編集します。

clippic_list.cgi
一行目「#!/usr/bin/perl」を,使用する Perl インタプリタにあわせて変更してください (フルパスで記述)。
clippic_list_user.cgi
テキストファイルになっています。中に書かれたコメント文にしたがって設定をカスタマイズしてください。
clippic_list_user.html, clippic_list_user_popup.html
とりあえず現状のままにしておきしょう。動作が無事確認できたら clippic の特殊タグ に従ってカスタマイズしてみてください。
clippic_list_user.css
とりあえず現状のままにしておきしょう。clippic を無事に動作させることができたら,ぜひいぢくり倒して,オリジナルのデザインを作り上げてください。

編集し終わったら,clippic_list を動作させるマシンに clippic 用のディレクトリを作成して,clippic_list.cgi の実行権限でそのディレクトリに書き込みできるように,ディレクトリのパーミッションを変更します (clippic_list.cgi はテンプレートのキャッシュファイルを生成するので)。
そしてファイルを転送し,必要とあれば各ファイルのパーミッションを推奨のものに合わせておいてください。

なお,CGI プログラム・ファイルに設定すべきパーミッションは,ウェブサーバの設定によって異なってくる場合があります。 suEXEC 機構を使用しているウェブサーバで clippic_list.cgi を動作させる場合は,上記の推奨パーミッションの「755」を「704」や「701」に,「644」を「604」や「600」に置き換えて設定してみてください (自信なし)。

3.3. 動作確認

a. clippic_mail

  1. カメラ付き携帯電話から,JPEG 画像を添付したテストメールを clippic 用のメールアドレスに送信します。
  2. 設置した clippic_mail.pl/clippic_mail.exe を起動します。
  3. 無事に動作すれば,メールサーバに POP アクセスしてテストメールを処理し,画像をウェブサーバに FTP 転送できたはずです。
  4. 動作がうまくいかないなぁと思われる場合は,clippic_mail.pl/clippic_mail.exe の存在するディレクトリに出力されているログファイル clippic_mail.log を覗いてみてください。

メーラでの通常のメールチェックなどにより,メールサーバからメールが削除されてしまった後は,clippic はメールを取得できませんのでご注意ください。

b. clippic_list

  1. 設置した clippic_list.cgi の URL をウェブブラウザで開き,clippic_list.cgi を起動します。
  2. 無事に動作すれば,clippic_mail がウェブサーバに転送した画像などが一覧できるはずです。
  3. 「500 Internal Server Error」が表示された場合は,プログラムが正常に起動しなかったことになります。
    1. 瞬時にエラーが表示される場合は,clippic_list.cgi のパーミッション,Perl インタプリタのフルパス,FTP の転送モード (ASCII である必要があります) などをチェックしてみてください。
    2. しばらくあと (およそ30秒後) にエラーが表示される場合は,clippic_list.cgi を設置したディレクトリに clippic_list.cgi 実行権限で書き込みができるようになっているか,ディレクトリのパーミッションをチェックしてみてください。
  4. 正常に起動はするが,画像が常に「0 枚」となっている場合は,設定ファイル clippic_list_user.cgi でのディレクトリ指定 (directory_image, directory_text) が,設定ファイル clippic_mail_user.dat のものとずれている可能性が考えられます。エラー時に表示される情報を参考にして設定を確かめてみてください。

3.4. 最終設置

clippic_mail

clippic_mail.pl/clippic_mail.exe が定期的に起動する仕掛けをしておくと,「ぽちぽちっ」と携帯電話からメール送信した画像が自動的にウェブサーバにアップロードされることになります。ウェブ更新が大変に楽ちんです。

UNIX 系の場合:
crontab を利用するのがもっとも一般的でしょう。
メールサーバに clippic_mail.pl を設置できるならば,メール転送設定ファイル .forward, .qmail などから直接 clippic_mail.pl を起動することも可能です。その際は clippic_mail.pl のコマンドラインオプションとして「-mode=stdin」 (メールを標準入力から読む) を付加してください。
Windows の場合:
アプリケーションを一定時間ごとに起動する,「タスク」機能や,なんらかのソフトを用いるとよいでしょう。
また,「スタートアップ」に clippic_mail.exe を入れておくと,PC の起動時にメールが自動処理されることになり,効率的かもしれません。

ではとりあえず,以上です。

4. サポート

4.1. オンラインマニュアル

現在ご覧いただいているこのページです。URL は http://mah.pobox.ne.jp/clippic.shtml です。

4.2. よくあるご質問 (FAQ)

まず最初に,Net モジュールを利用している実用すくりぷとん全般に関係する FAQ (common_N) を示します。

Q-common_1. 「Can't declare undef operator in my at Net/Cmd.pm」というエラーが表示される

スクリプトを実行して次のようなエラーが表示される場合があります。
これは,スクリプトのアーカイブに同梱している Net モジュールと,ユーザの Perl 実行環境の相性があわない場合に発生するエラーのようです (私の環境では再現できないので検証不足)。

Can't declare undef operator in my at Net/Cmd.pm line 500, near ") ="
BEGIN failed--compilation aborted at Net/POP3.pm line 12.
Can't declare undef operator in my at Net/Cmd.pm line 500, near ") ="
BEGIN failed--compilation aborted at Net/SMTP.pm line 16.
Can't declare undef operator in my at Net/Cmd.pm line 500, near ") ="
BEGIN failed--compilation aborted at Net/FTP.pm line 20.

エラーが起きないようにするためには,Net モジュールに含まれる Cmd.pm というファイル (Net/Cmd.pm) の500行目をたとえば以下のように書き換えるとよいようです (「500行目」という場所は Net/Cmd.pm のバージョンが 2.21 の場合)。

なお,Net モジュール ver.1.13 (Net/Cmd.pm のバージョンは 2.23) では上記の該当箇所で undef が使われなくなっています。[2003/03/15]

Q-common_2. 「Can't locate object method "new" via package "Net::FTP::I" at Net/FTP.pm」というエラーが表示される

スクリプトを実行して次のようなエラーが表示される場合があります。「Net::FTP::I」の I は A など,他の場合もあり得るかもしれません。
これは,スクリプトのアーカイブに同梱している Net モジュールと,ユーザの Perl 実行環境の相性があわない場合に発生するエラーのようです (私の環境では再現できないので検証不足)。

Can't locate object method "new" via package "Net::FTP::I" at Net/FTP.pm line 915.

エラーが起きないようにするためには,Net モジュールに含まれる FTP.pm というファイル (Net/FTP.pm) の905行目を以下のように書き換えるとよいかもしれません (「905行目」という場所は Net/FTP.pm のバージョンが 2.67 の場合)。

Q-1. clippic_mail をメールサーバに設置したい

お使いのメールサーバが,メール転送設定ファイル (.forward, .qmail など) から任意のプログラムを起動できる設定であれば,clippic_mail を直接設置することも可能です。
その際は clippic_mail にコマンドラインオプション -mode=stdin (メールを標準入力から取り込む) を付けて,起動してください。

Q-2. 撮り貯めていた過去のメールを clippic にインポートしたい

メールのソースすべて (メールヘッダ + 本文) がお手元にあるのならば,携帯電話から再送せずとも clippic へメールのインポートが可能です。
たとえば下記のようにして,コマンドライン上で,clippic_mail の標準入力にメール一通分のソースすべてを流し込んでください。

$ ./clippic_mail.pl -mode=stdin < oldmail.txt

clippic_mail では,メール画像・テキストファイルに関連づけられる日付は,処理するメールのメールヘッダ Date: 行から決定されます (clippic_mail の実行日時ではありません)。よって,過去のメールはその当時の日付を保ったままインポートされます。

Q-3. clippic_list.cgi の画像一覧ページで表示される画像を消したい

まず最初に画像一覧ページにて,消したい画像が何月のものであるかと,画像のファイル名を調べておきます。ここでは仮に「2003年1月のもの」「20030127032703_12345-01_sample.jpg」だとしましょう。
そして次の二つの操作をすると,画像一覧から該当の画像を消すことができます。

  1. (設定ファイル clippic_list_user.cgi で設定した) ディレクトリ directory_image の中を調べ,ディレクトリ 200301 に入っているメール画像ファイル 20030127032703_12345-01_sample.jpg を見つけて削除する。
  2. 同様にディレクトリ directory_text を調べ,メールテキストファイル 20030127032703_12345-01_sample.cgi を見つけて削除する。

Q-4. clippic_list.cgi の画像一覧ページを Opera で表示すると,画像が横一列にずらっと並んでしまう

当方は Opera (Windows 版) Ver.6.05 でこの現象を確認しました (Ver.7.03 では問題ないようです)。
回避方法の一つとしては,CSS ファイル clippic_list_user.css の中の TABLE.mail セクションにある「float: left;」という指定を外すのが簡単です。ただしこの場合,どのブラウザで閲覧しても,画像は縦一列で表示されることになります。

4.3. メーリングリスト

Yahoo! Japan Groups を利用して clippic のユーザ ML を作りました。
ヴァージョンアップの告知,質問のやりとりなどをこの ML を通じて行いますので,よかったらどうぞ参加してください。メッセージは「公開する」設定 (誰でも過去ログを閲覧できる) にしています。この点はご注意ください。

5. 資料

5.1. 既知のバグ・問題点

□ は原因調査中・対応考え中のものを,■ は今後のリリースで対応するものを示しています。

5.2. プログラム履歴

clippic のあゆみ を参照してください。

5.3. 今後の予定

clippic のあゆみ を参照してください。

5.4. メディア掲載歴

clippic のあゆみ を参照してください。

5.5. 特殊タグ

clippic の特殊タグ を参照してください。

6. リンク集

6.1. カメラ付き携帯電話からウェブを更新する方法のあれこれ

携帯電話の機種を選ばない,「メールでウェブ更新する方法」をここでは扱っています。
その他には,ブラウザのフォーム (type="file") を使って画像を CGI プログラムにアップロードする方法があります。

[ソフトウェア]

a. PC で稼働
b. ウェブサーバで稼働

[サービス]

6.2. 作者メモ

a. 気になるもの

b. その他