Я пытаюсь создать небольшое приложение для веб-почты.Когда я читаю все электронные письма в папке «Входящие», я хочу показать для каждого письма, если оно имеет вложения.Это работает, но проблема в том, что это занимает много времени, около 0,5 секунд для 1 Мб вложения электронной почты.Умножьте это на все электронные письма в папке «Входящие» с большими вложенными файлами: |Мой вопрос: как проверить, есть ли в письме прикрепление без загрузки всего письма?Это возможно ?Ниже приведен код, который я использую:
function existAttachment($part)
{
if (isset($part->parts))
{
foreach ($part->parts as $partOfPart)
{
$this->existAttachment($partOfPart);
}
}
else
{
if (isset($part->disposition))
{
if ($part->disposition == 'attachment')
{
echo '<p>' . $part->dparameters[0]->value . '</p>';
// here you can create a link to the file whose name is $part->dparameters[0]->value to download it
return true;
}
}
}
return false;
}
function hasAttachments($msgno)
{
$struct = imap_fetchstructure($this->_connection,$msgno,FT_UID);
$existAttachments = $this->existAttachment($struct);
return $existAttachments;
}