Я нашел, что PHP кодируют онлайн для загрузки вложений на каталог с помощью IMAP отсюда. http://www.nerdydork.com/download-pop3imap-email-attachments-with-php.html
Я изменил его немного изменение
$structure = imap_fetchstructure($mbox, $jk);
$parts = ($structure->parts);
кому:
$structure = imap_fetchstructure($mbox, $jk);
$parts = ($structure);
чтобы заставить это работать правильно, как иначе, я получил ошибку о том, как stdClass не определяет свойство, названное $parts. Делая это, я смог загрузить все вложения. Я протестировал его снова недавно, хотя, и это не работало. Ну, это не работало 6 раз, работавшее 7-е, и затем не работало с тех пор. Я думаю, что это имеет некоторое отношение ко мне завинчивающий обработку частей, так как количество ($parts) продолжает возвращаться 1 для каждого сообщения, таким образом, это не находит вложений, я думаю.
Так как это загрузило вложения однажды без проблем, я уверен, что вещи области становятся завинченными, прямо здесь. Прежде чем этот блок кода для цикла, который проходит каждое сообщение в поле, и после того, как это - цикл, который просто проходит $parts для каждой структуры IMAP. Спасибо за любую справку можно обеспечить. Я посмотрел на imap_fetchstructure страницу на php.net и не могу выяснить то, что я делаю неправильно.
Править: Я просто перепроверил папку после ввода моего вопроса, и все это открылось. Я чувствую, что схожу с ума. Я не выполнил код с тех пор за несколько минут до того, как я начал вводить это, и он не имеет смысла мне, что он занял бы у этого много времени для инициирования. У меня есть приблизительно 800 сообщений в почтовом ящике, но я фигурировал, так как он распечатал мой оператор в самом конце PHP, что вся работа создания файла была сделана.
Посмотрите этот код:
$structure = imap_fetchstructure($mailbox, $index);
$attachments = array();
if(isset($structure->parts) && count($structure->parts)) {
for($i = 0; $i < count($structure->parts); $i++) {
$attachments[$i] = array(
'is_attachment' => false,
'filename' => '',
'name' => '',
'attachment' => '');
if($structure->parts[$i]->ifdparameters) {
foreach($structure->parts[$i]->dparameters as $object) {
if(strtolower($object->attribute) == 'filename') {
$attachments[$i]['is_attachment'] = true;
$attachments[$i]['filename'] = $object->value;
}
}
}
if($structure->parts[$i]->ifparameters) {
foreach($structure->parts[$i]->parameters as $object) {
if(strtolower($object->attribute) == 'name') {
$attachments[$i]['is_attachment'] = true;
$attachments[$i]['name'] = $object->value;
}
}
}
if($attachments[$i]['is_attachment']) {
$attachments[$i]['attachment'] = imap_fetchbody($connection, $message_number, $i+1);
if($structure->parts[$i]->encoding == 3) { // 3 = BASE64
$attachments[$i]['attachment'] = base64_decode($attachments[$i]['attachment']);
}
elseif($structure->parts[$i]->encoding == 4) { // 4 = QUOTED-PRINTABLE
$attachments[$i]['attachment'] = quoted_printable_decode($attachments[$i]['attachment']);
}
}
} // for($i = 0; $i < count($structure->parts); $i++)
} // if(isset($structure->parts) && count($structure->parts))