*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 ;
         foreach($structure->parts as $part){
                 //添付ファイル名取得
                 $filename = $structure->parts[$kk]->d_parameters['filename'];
                 $kk++ ;
                 // とりあえず保存
                 $fp = fopen("/home/okada/public_html/pear_test/temp2/".$filename,"w" );
                 $length = strlen( $part->body );
                 fwrite( $fp, $part->body, $length );
                 fclose( $fp );
                 $attached_file = $attached_file .$filename."\n" ;
 //              $mail_body = $structure->body;
         }
 
         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);
 ?>

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS