.forwardでパイプしたプログラムでメール本体を取得するには
2012/08/13 | メール
.forwardでメール受信をトリガーとしてphpを起動することはできたが、どうやってメール本文をphpで取得するんだっけ。過去に何度もやっているのに、こういう大切なことをメモしていないなんて、テクメモの意味が無い。
$fp = fopen( ‘php://stdin’, ‘r’ );
これでファイルポインタをオープンし、あとは通常のファイルと同様に読みこめばOK。これでヘッダから本文までメールの全てを受信することができる。あとはメールをデコードするライブラリにでも突っ込んで処理すれば楽ちん。
単にメール本文を取得するだけなら、上記で取得したテキストの改行が連続する部分(最初の)で二つに切り分けて、後部を取ればいい。送り先、送信元のメールアドレスを取得したいなら$_SERVERから値を取得できる。単純処理ならライブラリ不要だ。
他にも簡単に値を取得する方法があったような気がするけれど・・・思い出せない。