2015-07-08 6 views
0

мне нужна помощь,Как переименовать файл вложения из электронной почты с помощью php?

, например: имя вложения из моего сообщения Входящие sample.pdf, У меня есть PHP скрипт, чтобы загрузить вложение!

теперь моя проблема заключается переименовать вложение из почтового ящика с помощью PHP

я хочу сделать PHP скрипт, который автоматически изменить имя вложения (образец .pdf) в; AHM скажем переименовать его в теме письма ... поэтому он стал предметом .pdf ...

<?php $hostname = '{xxxxxxpop3/notls}INBOX'; 
$username = '[email protected]'; 
$password = 'password'; 

$savedirpath = "/root/Fax"; 
$type = 'ReadAttachment'; 
$obj = new 
$type; 
$obj->getdata($hostname, $username, $password, $savedirpath, $delete_emails = false); 

class ReadAttachment 
{ 
    function getdecodevalue ($message, $coding) 
    { 
     switch ($coding) 
     { 
      case 0: 
      case 1: 
       $message = imap_8bit($message); 
       break; 
      case 2: 
       $message = imap_binary($message); 
       break; 
      case 3: 
      case 5: 
       $message = imap_base64($message); 
       break; 
      case 4: 
       $message = imap_qprint($message); 
       break; 
     } 

     return $message; 
    } 


    function getdata ($hostname, $username, $password, $savedirpath, $delete_emails = false) 
    { 
     // make sure savepath has trailing slash(/)   
     $savedirpath = str_replace('\\', '/', $savedirpath); 
     if (substr($savedirpath, strlen($savedirpath) - 1) != '/') 
     { 
      $savedirpath .= '/'; 
     } 
     $mbox = imap_open($hostname, $username, $password) or die("can't connect: " . imap_last_error()); 
     $message = array(); 
     $message["attachment"]["type"][0] = "text"; 
     $message["attachment"]["type"][1] = "multipart"; 
     $message["attachment"]["type"][2] = "message"; 
     $message["attachment"]["type"][3] = "application"; 
     $message["attachment"]["type"][4] = "audio"; 
     $message["attachment"]["type"][5] = "image"; 
     $message["attachment"]["type"][6] = "video"; 
     $message["attachment"]["type"][7] = "other"; 
     for ($jk = 1; $jk <= imap_num_msg($mbox); $jk++) 
     { 
      $structure = imap_fetchstructure($mbox, $jk, FT_UID); 
      $parts = (isset($structure->parts) ? $structure->parts : false); 
      $fpos = 2; 
      for ($i = 1; $i < count($parts); $i++) 
      { 
       $message["pid"][$i] = ($i); 
       $part = $parts[$i]; 

       if ($part->disposition == "ATTACHMENT") 
       { 
        $message["type"][$i] = $message["attachment"]["type"][$part->type] . "/" . strtolower($part->subtype); 
        $message["subtype"][$i] = strtolower($part->subtype); 
        $ext = $part->subtype; 
        $params = $part->dparameters; 
        $filename = $part->dparameters[0]->value; 

        $mege = ""; 
        $data = ""; 
        $mege = imap_fetchbody($mbox, $jk, $fpos); 
        $filename = "$filename"; 
        $fp = fopen($savedirpath . $filename, 'w'); 
        $data = $this->getdecodevalue($mege, $part->type); 
        fputs($fp, $data); 
        fclose($fp); 
        $fpos += 1; 
       } 
      } 
      if ($delete_emails) 
      { 
       // imap_delete tags a message for deletion 
       imap_delete($mbox, $jk); 
      } 
     }  // imap_expunge deletes all tagged messages  if ($delete_emails) {   imap_expunge($mbox);  } 
     imap_close($mbox); 
    } 
} 

?> 
+0

Вы загружаете с помощью браузера или вы хотите загрузить этот pdf-файл на свой сервер, обратившись к своей почте? –

+0

@InyaProduction - скачать, что pdf на мой сервер mam – Bee

ответ

1

Ну вы установили имя файла здесь:

$fp = fopen($savedirpath . $filename, 'w'); 

так что вам просто нужно изменить $filename на нужное значение

+0

ах я вижу мам .. спасибо ... Можете ли вы, пожалуйста, научить меня, как получить тему сообщения, и установить тему в новое имя файла приложения – Bee

+0

Я хочу переименуйте загруженное вложение. и новое имя - это электронная почта отправителя – Bee

Смежные вопросы