前回の宣言どおり、メール解析にpearのMail::mimeDecodeとそのラッパークラスReceiptMailDecoderを利用させていただきました。
それらを利用してできたのがコチラ。
写真の位置を地図で表示するプチアプリ
- まずはQRを読み込んでメールアドレスをあて先に設定。

(QR読めない方はこちら
lifelog(アット)playispeace(ドット)sakura(ドット)ne(ドット)jp) - そのあて先メールにGPS情報を付加した写真を添付します。(最近の携帯なら、写真を取る時にサブメニューといった項目にGPS情報を付加するオプションがあるかと思います。)
- そして、タイトル・本文は空でいいので送信
- すぐにメールが返ってくるので、本文のURLをクリック
- 添付した画像と、その位置がマップ表示されている(はず!w)
添付メール送信→自動返信→ブラウジングで確認!という流れのプチアプリです。まだまだ検証は必要かと思いますが、私のやりたいライフログのコアな部分の一部ができました。
実装ポイント
ポイントというかはまったとこのメモ。
メールを送って自動返信の検証中にこんな返信がありました。
—– The following addresses had permanent fatal errors —–
<(メールアドレス)>
(reason: 255)
<(メールアドレス)>
(reason: 255)
—– Transcript of session follows —–
554 5.3.0 unknown mailer error 255
・・・・(以下略)
で、結果、まずかったのは、自動ブラグラム内のこの部分
require_once('ReceiptMailDecoder.class.php');
このrequire_onceをコメントアウトすると、エラーは起きない。で、include_pathがまずいのだろうとphpinfoを見てみると、問題ない。
で、こんな記事を発見
受信メールのPHPを起動から添付ファイルの保存まで
エラーコードは違うけど、似たような現象っぽいと思い、ここにあることを試した結果、
ini_set('include_path', '/home/xxxxx/PEAR');
require_once('ReceiptMailDecoder.class.php');
このようにini_setを明示的に追記することで、解決しました。うーん、ブラウザからphpinfoを確認した場合とメールからの起動時の環境の違いでinclude_pathも変わるのかな?ここは検証してみないとなんともですね。
今後の予定
とりあえず目先にやりたい検証機能ですが、
- 会員登録機能
- 会員ごとによる地図表示
- 複数のマーカーを置いた際の地図表示
このあたりをやっていこうかと思います。
|
写真の位置を地図で表示するプチアプリ