Zend_Mail-从GMAIL获取IMAP附件


Zend_Mail - Fetch IMAP Attachements from GMAIL

我在Zend Framework和从GMAIL获取附件时遇到了一些问题。身份验证由oAuth进行。

获取Mailtext没有问题,但我无法获取附件,或者更好的是,我不知道如何做到这一点(;

        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;
                } 
            }

我邮件的标题(删除了一些详细信息):

[delivered-to] => xxxx@gmail.com
[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

我还没试过,但如果它有效,你欠我一杯啤酒。。。无论如何,试试这个:从逻辑上讲,它应该有效。。。

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);

如果你得到错误,张贴在这里

或者,如果有效,给我打个勾;)