2012-09-04 3 views
0

Zend Framework에 문제가 있거나 GMAIL에서 첨부 파일을 가져 오는 데 어려움이 있습니다. 인증은 oAuth가 수행합니다.Zend_Mail - GMAIL에서 IMAP 첨부 파일 가져 오기

:)

내 메일에서
 if ($message->isMultiPart()) { 

      $iParts = $message->countParts(); 

      for ($i = 1; $i < $iParts; $i++) { 
       $part = $message->getPart($i); 

       // ATTACHEMENT? 
       if() { 
        // DO MAIL DOWNLOAD 
       } 

       // MAIL TEXT 
       if (strtok($part->contentType, ';') == 'text/plain') { 
        $encoding = $part->getHeader('content-transfer-encoding'); 
        $contentType = $part->getHeader('content-type'); 
        $content = $part->getContent(); 
        break; 
       } 
      } 

헤더 (제거 몇 가지 세부 사항을,

IT는 Mailtext를 가져 오기 위해 아무 문제 없다,하지만 난 첨부 파일을 가져 오는 기운, 또는 더 나은 내가 그것을 (할 수있는 방법을 모르고에게이 없다

[delivered-to] => [email protected] 
[received] => Array 
    (
     [0] => 
     [1] => 
     [2] => 
     [3] => 
    ) 
[return-path] => 
[received-spf] => 
[authentication-results] => 
[dkim-signature] => 
[mime-version] => 1.0 
[from] => 
[date] => Thu, 30 Aug 2012 17:16:37 +0200 
[message-id] => 
[subject] => ANHANG 
[to] => 
[content-type] => multipart/mixed; boundary=f46d043bd88a9f5d9404c87d2ad5 

답변

1

나는 그것이 작동하는 경우, 당신은 나에게 맥주를 빚을 시도했지만하지 않은 ... 어쨌든,이 시도 : 논리적으로 작동한다 ...

if ($message->isMultiPart()) { 
    $part = $message->getPart(2); 
} 

     // Remember mails with attachment are MULTI-part? (: 
     $filename = $part->getHeader('content-description'); 
     $attachment = base64_decode($part->getContent()); //we decode because mails are encoded with base 64 

     // File operations 
     $fh = fopen($filename, 'w'); 
     fwrite($fh, $attachment); 
     fclose($fh); 

유 오류가 발생하는 경우, 여기

을 게시하거나 작동하는지, 진드기 김미)

+0

감사하지만 어떻게 첨부 파일이 있음을 확인하는? (내 게시 된 헤더 예제를 살펴보십시오). 아니면 매회 부인회입니까? – opHASnoNAME

+0

나는 내 대답을 편집했다 : P yea, 당신이 첨부 파일을 가지고있는 것 같습니다 : [content-type] => multipart/mixed; 경계 = f46d043bd88a9f5d9404c87d2ad5 – Karma

+0

그래서, 어떻게됩니까? 내 대본을 보았 니? 그냥 테스트하지 않고 타이핑을했기 때문에 오타가 예상됩니다 ... – Karma

관련 문제