ホーム » パソコン » メールから添付ファイルを抽出する

メールから添付ファイルを抽出する


--- 広告 ---
--- 広告 ---

PHP : 受信メールの添付ファイルを保存する

受信メールを解析する
(http://www.aiwake.co.jp/modules/bulletin/index.php?page=article&storyid=4から)

 #!/usr/local/bin/php -q 
//PEARのパスを設定
$path = '/home/{hogehoge}/pear/PEAR/';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once 'Mail/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";
if (!$params['input']) {
     // 読み込み失敗
     exit();
}
$structure = Mail_mimeDecode::decode($params);

//送信者のメールアドレスを抽出
 $mail = $structure->headers['from'];
 $mail = addslashes($mail);
 $mail = str_replace('"','',$mail);
 $mail = preg_replace('/(^.*<|>$)/', '', $mail);

 // 件名を取得
 $subject = $structure->headers['subject'];

 // 本文、添付ファイル(画像)を抽出
 switch (strtolower($structure->ctype_primary)) {
     case "text":
         // シングルパート(テキストのみ)
         $body = $structure->body;
         break;
     case "multipart":
         // マルチパート(画像付き)
         foreach ($structure->parts as $part) {
             switch (strtolower($part->ctype_primary)) {
                 case "text":
                     $body = $part->body;
                     break;
                 case "image":
                     // 画像の拡張子を取得する
                     $type = strtolower($part->ctype_secondary);
                     // 添付ファイル保存
                     $tmpName = '{保存ディレクトリ}/image.' . $type;
                     if ($fp = fopen($tmpName, "w")) {
                         $length = strlen($part->body);
                         fwrite($fp, $part->body, $length);
                         fclose($fp);
                     }
                     break;
             }
         }
         break;
     default:
         $body = "";
 }

 // 取得した情報を、データベースへ保存等の処理を行う

参考URL 感謝です。
http://itpro.nikkeibp.co.jp/article/COLUMN/20080508/301027/
http://d.hatena.ne.jp/pyopyopyo/20041015/p1
http://oshiete.goo.ne.jp/qa/3001312.html

--- 広告 ---
--- 広告 ---

 

この記事に関連する記事一覧

目 次
最近の投稿
--- 広告 ---
--- 広告 ---
お問い合わせ