「カゴヤで添付された画像を保存するサンプル」の編集履歴(バックアップ)一覧はこちら

カゴヤで添付された画像を保存するサンプル」(2010/05/06 (木) 12:44:29) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*カゴヤで添付された画像を保存するサンプル &bold(){fowardファイルとかは別途用意しておくこと } #!/usr/local/bin/php -q <?php //これはデフォでカゴヤにはいっている require("Mail.php"); //これはhttp://pear.php.net/package/Mail_mimeDecode/download/からもってくる require_once("./mimeDecode.php"); // PEAR MimeDecode //メールソースを標準入力から読み込み $source = file_get_contents("php://stdin"); if(!$source) { exit(); // 読み込み失敗 } //メール解析 $params['include_bodies'] = true; $params['decode_bodies'] = true; $params['decode_headers'] = true; $decoder = new Mail_mimeDecode($source); $structure = $decoder->decode($params); //送信者のメールアドレスを抽出 $mail = $structure->headers['from']; $mail = addslashes($mail); $mail = str_replace('"','',$mail); //署名付きの場合の処理を追加 preg_match("/<.*>/",$mail,$str); if($str[0]!=""){ $str=substr($str[0],1,strlen($str[0])-2); $mail = $str; } // 件名を取得。これがIDとなっているとする $diary_subject = $structure->headers['subject']; //半角英数字のみ if(!mb_ereg('[^0-9a-zA-Z]', $diary_subject)){ 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": // テキスト //ignore case "image": // 画像 //添付内容をファイルに保存 $tmp=date('U'); $fp = fopen('/home/●●●/public_html/●●●/hostprof/img'.$i."_".$i.$tmp."picture.jpg","w" ); $length = strlen( $part->body ); fwrite( $fp, $part->body, $length ); fclose( $fp ); //パーミッションを忘れずにかえる。デフォは600になる模様 chmod('/home/●●●/public_html/●●●/hostprof/img'.$i."_".$i.$tmp."picture.jpg", 0666); continue; } } break; default: $diary_body = ""; } ?>

表示オプション

横に並べて表示:
変化行の前後のみ表示: