我在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);
如果你得到错误,张贴在这里
或者,如果有效,给我打个勾;)