PHPでstdinしたメールヘッダー情報を成型
<?php
//PEARライブラリの読み込み
require_once("Mail.php");
require_once("mimeDecode.php");
//言語設定、文字コード設定
mb_language("Japanese");
mb_internal_encoding("UTF-8");
//標準入力
$stdin = file_get_contents("php://stdin");
$stdinにメールヘッダー情報をぶち込んでいるわけですがPEARのMail.phpやmimeDecode.phpなどのライブラリを利用して【件名】、【メール送信者】、【メール本文】、【添付ファイル】などの情報を抽出してそれをデータベースに登録したいのだけど、データベースへ登録した時に文字化けするわ、本文が空のまま登録されるわ(ここ重要!)、デバイス(メーラー)によって文字化けするヶ所が違うわで、もう訳わからん状態になってます。
8/25追記
<?php
//PEARライブラリを使用して成型する為の準備
$params['include_bodies'] = true;
$params['decode_bodies'] = true;
$params['decode_headers'] = true;
//標準入力でヘッダー情報を$paramsへ代入
$params['input'] = file_get_contents("php://stdin");
$params['crlf'] = "\r\n";
//mimeDecodeクラスを使って$structureへ成型後の値を代入
$structure = Mail_mimeDecode::decode($params);
/* 中略 */
//各変数の中身をテキストデータとして吐き出し
//予定としてはmimeDecodeクラスで成型した値が入る(けど、両方0バイト!)
file_put_contents("structure.txt", $structure);
file_put_contents("part.txt", $part);
//各種データがテキストファイルで吐き出される
file_put_contents("params.txt", $params['input']);
file_put_contents("subject.txt", $subject);
file_put_contents("mail.txt", $mail);
file_put_contents("body.txt", $m_body);
$paramsの各キーへPEARのライブラリを使用して成型してるわけですが、これの扱い方がいまいち解らない。解るところもあるけどもライブラリを2つ使用していることでどの値がどの変数のどのキーに入っているのかが理解できてない。$structureをfile_put_contentsで内容を吐き出すようにコードを書いているのだが**$structureと$part**の中身は空になるという。
オブジェクト指向がまだ全然理解出来てないのでそこがネックになっている気はするが解決策が解らない状態。$structureがオブジェクトだからテキストで吐き出せないのかな?$partはスコープがforeach内だけだから参照できないのかな?という感じです。
この問題は解決しなければ先に進めないので重点的にしていきます。
PEARライブラリのMail.phpの中身をある程度理解しないと成型できない気がするのでこっちの中身も少し見てどういった返り値が来てるのか、調べてみたいと思います。