0

Zend Framework と GMAIL からの添付ファイルの取得に問題があります。認証は oAuth によって処理されます。

メールテキストを取得するのは問題ありませんが、添付ファイルを取得できないか、方法がわかりません (;

        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
4

1 に答える 1

2

私はそれを試していませんが、うまくいくなら、あなたは私にビールを借りています... とにかく、これを試してください: 論理的にはうまくいくはずです...

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

エラーが発生した場合は、ここに投稿してください

または、それが機能する場合は、チェックを入れてください;)

于 2012-09-04T16:21:14.210 に答える