我在使用Zend Framework时遇到了麻烦,并从GMAIL获取了Attachements。身份验证由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
答案 0 :(得分: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);
如果您收到错误,请在此处发布
或者如果它有效,给我一个滴答滴答;)