*Pearで添付メールの処理 [#bd2b754d] RIGHT:更新日&lastmod(); **クラスの確認 [#n029c42a] Mail_Mime、Mail_mimeDecodeあたりが必要なようだ Mail_MimeとMail_mimeDecodeをインストールしてみる # pear install --alldeps Mail_Mime # pear install --alldeps Mail_MimeDecode # pear list Installed packages, channel pear.php.net: ========================================= Package Version State Archive_Tar 1.3.7 stable Archive_Zip 0.1.1 beta Console_Getopt 1.2.3 stable HTTP 1.4.1 stable HTTP_Download 1.1.3 stable HTTP_Header 1.2.0 stable MIME_Type 1.2.0 stable Mail_Mime 1.8.0 stable Mail_mimeDecode 1.5.1 stable PEAR 1.9.1 stable Structures_Graph 1.0.3 stable System_Command 1.0.6 stable XML_Util 1.2.1 stable **添付ファイルの受信 [#q501fa81] 添付ファイルを受信して、指定フォルダに保存し、返信する #!/usr/local/bin/php -q <?php 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"; $structure = Mail_mimeDecode::decode($params); //送信者のメールアドレス $to_mail = $structure->headers['from']; $to_mail = addslashes($to_mail); $to_mail = str_replace('"','',$to_mail); $to_mail = preg_replace('/(^.*<|>$)/', '', $to_mail); // 件名を取得 $mail_subject = $structure->headers['subject']; switch(strtolower($structure->ctype_primary)){ case "text": // シングルパート(テキストのみ 添付なし) $mail_body = $structure->body; break; case "multipart": $kk=0 ; // $structure->parts[0] => $part, $structure->parts[1] => $part の順に存在する間は$partに入る // $structure->parts[0]->body:本文内容 // $structure->parts[1]->body:1番目の添付ファイルの内容 // $structure->parts[2]->body:2番目の添付ファイルの内容 // .................. foreach($structure->parts as $part){ switch(strtolower($part->ctype_primary)){ // テキスト(添付ファイルの本文部) case "text": $mail_body = $part->body; // $structure->parts[0]->body:本文内容 // $mail_body = mb_convert_encoding($body, "sjis", "jis"); break; //添付ファイル default: //添付ファイル名取得 $filename = $structure->parts[$kk]->d_parameters['filename']; $kk++ ; // 保存 $fp = fopen("/home/okada/public_html/pear_test/temp2/".$filename,"w" ); $length = strlen( $part->body ); //$structure->parts[1]->body:以降 添付ファイルの内容 fwrite( $fp, $part->body, $length ); fclose( $fp ); $attached_file = $attached_file .$filename."\n" ; } $kk++ ; } break; default: $mail_body = ""; $attached_file = ""; } // 受信した内容を返信 $body = "" .$mail_subject."について\n\n" ."内容は\n" .$mail_body."\n\n" ."以下の添付ファイルを保存しました。\n" .$attached_file."\n" ."---------------------------------------------\n" ."test@Okada \n" ."送りもとは".$to_mail."だよ\n" ."\n" ; $mailfrom="From:okada@abc-u.net.jp"; $mail_title = "メール自動返信" ; mb_language("Ja") ; mb_internal_encoding("EUC-JP") ; // mb_internal_encoding("UTF-8") ; $to_mail="okada@abc-u.net.jp"; $rc=mb_send_mail($to_mail,$mail_title,$body,$mailfrom); ?> ***postfix [#pd9c72ca] /etc/postfix/aliases # mail test(attached file) r-mail: "|/home/okada/public_html/pear_test/r-mail.php" と記入後 # newaliases を実行 ***サーバ上に自分のフォルダにpearを指定する [#taed91b9] 以下を<?phpの後に入れる //PEARのパスを設定 $path = '/home/okada/pear/PEAR/'; set_include_path(get_include_path() . PATH_SEPARATOR . $path); require_once 'Mail/mimeDecode.php' **参考ページ [#vd5840a0] -http://www.aiwake.co.jp/modules/bulletin/index.php?page=article&storyid=4 -http://dozo.matrix.jp/pear/index.php?PEAR%2FMail%2FMail_MimeDecode