メールのデコード

2006/10/22 | その他

メール操作ネタの続き。
メールをデコードするにはPEARのMail/mimeDecodeを使う。
メール受信のトリガーから起動させる関係で、インクルードパスの設定等々が上手くいかないときは、元のファイルで直接必要なファイルをインストールするとして、以下のファイルが必要。

・PEAR.php
・Mail/mimeDecode.php

「Mail/mimeDecode.php」はMail_Mimeパッケージに含まれている。
これだけでデコードできるはず。あとでチェックしてみよう。

メール到達をトリガーとして・・・(まとめ)

2006/10/22 | その他

メールが届いたら、環境変数に送り主のメールアドレスなどをセットしてプログラムに引き渡すことができる、という点については昨日書いた。
しかし本文は引き渡せないので、どうしたものかと思案していたのだが、結局渡せることがわかった。いわゆる標準入出力を使う。これですべて解決。
まとめると以下のようになる。

(1) .qmailファイルでメールがついたらプログラムを起動するよう設定
 | /usr/bin/php /hoge/hoge/hoge.php
(2) 引き渡されたプログラム内でメール本文を標準入力から読み取る
 $body=”;
 $stdin=@fopen(“php://stdin”,”r”);
 while(!feof($stdin)){
  $body.=fgets($stdin,4096);
 }
(3) その他環境変数からいろいろ使用する。
 $_ENV[‘SENDER’]とか。

うんうん。ちょっとしたアプリがかけそう。調べてよかった。

qmail連携で環境変数・・・

2006/10/21 | その他

携帯などで「空メールを送ったら自動的にプログラムが起動して・・・」という機能を実装したくなった(「したくなった」という気分自体異常だけどね)。
使っているメールサーバはqmail。よって.qmailファイルでプログラムを起動するようにするとそれで事足りる。当然phpのプログラムをキックするわけだが、phpのプログラム中で便利に使える環境変数があるのでまとめておく。

$_ENV[‘SENDER’] 送信者アドレス
$_ENV[‘RECIPIENT’] 受信者アドレス

他にもいろいろ。詳しくはここ

むむ。本文は環境変数に読み込まれないのかも。

ActionChainは引数が渡せる

2006/10/20 | mojavi2

最近まで知らなかった(単にソースを熟読していないだけなのだが)。
ActionChainは引数を渡すことができる。
registerする際に・・・。

$ac=new ActionChain();
$ac->register(‘登録名’,’モジュール名’,’アクション名’,array(‘引数名’=>’引数値’));

これだけでいい。
しかし・・・mojavi2って最近は使っている人いるのだろうか。
今はPHPフレームワークの過渡期。そろそろ新しいものにチャレンジする必要もありそう。Zendとかね。

一回しかアクセスしていないのに・・・

2006/10/19 | その他

アクセス数をカウントするプログラムを書いていて、わけのわからない症状がでた。
最初のアクセス時に、なぜかカウントがいきなり3になる。本来ならデータベースに新規レコードが追加されて、カウントが1にセットされるはずなのに・・・。しかし一旦データを削除して、もう一度同じURLにアクセスすると今度は1。なぜ?、なぜ??。
調べた結果、googleアドがちょっかいを出していることがわかった。googleアドは自分が呼び出されると、googleのサーバから当該URLにリクエストを出して、それによって表示内容を決定する(と思う)。
結局いきなり初期値が3になるのではなく、1でレコードが追加されたあと、googleが2つカウントアップしていたわけだ。
カウントアップのプログラムでUSER_AGENTをチェックすることで問題解決。これは久しぶりにはまってしまった。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net