メールデータを受信して解析する方法で行き詰っています。
メールデータを受信して解析する方法で行き詰っています。 下記のような感じで書いていますが、添付画像がある場合と、インラインHTML内に画像が混じっている場合の切り分けと保存処理がうまくいきません。 require_once ('mimeDecode.php'); // メールデータ取得 $params['include_bodies'] = true; $params['decode_bodies'] = true; $params['decode_headers'] = true; $params['input'] = file_get_contents ("php://stdin"); $params['crlf'] = "\r\n"; $structure = Mail_mimeDecode::decode ($params); //メール本文を取得 switch (strtolower ($structure->ctype_primary)){ case "text": // シングルパート(テキストのみ) $diary_body = $structure->body; break; case "multipart": // マルチパート(画像付き) $i = 1; foreach ($structure->parts as $part){ switch (strtolower($part->ctype_primary)){ case "text": // テキスト $diary_body = $part->body; break; case "image": // 画像 //画像の拡張子を取得する(小文字に変換) $type = strtolower ($part->ctype_secondary); $canvas = imagecreatetruecolor (100,100); ~省略~ // 画像を出力する switch ($type) { case 'jpeg': case 'png': imagejpeg ($canvas,$i . '.' . $type,100); break; case 'gif': imagegif ($canvas,$i . '.' . $type,100); break; default: return false; break; } $i++; } } break; default: $diary_body = ''; } ■問題点 1、添付画像だけがあるメール(TEXT)の場合、本文の値が取得できません。(添付画像だけは保存できる。) 2、インラインHTMLメールの場合、「$i」の部分に「CID」と一致した名前を取得(設定)する方法がわかりません。 3、インラインHTMLメールであり、かつ添付画像もある場合「1」と同じ結果になってしまいます。 上記3つの問題点を解決したいのですが、やり方がわかりません。 ご教示お願い致します。
PHP・124閲覧・250