xVansX
Новичок
У меня такая задача.
1. Выдрать файлы с каждого непрочитанного письма на сервере.
До сего момента не сталкивался с такой проблемой.
Оставляет 3 письма непрочитанными.
А нужно чтоб забирал все.
вот код
1. Выдрать файлы с каждого непрочитанного письма на сервере.
До сего момента не сталкивался с такой проблемой.
Оставляет 3 письма непрочитанными.
А нужно чтоб забирал все.
вот код
PHP:
<?php
$user='login';
$pass='password';
$pop = imap_open("{mailhost:143/notls}INBOX", $user, $pass);
$info=imap_mailboxmsginfo($pop);
$unread=imap_search($pop,'UNSEEN');
$count=count($unread);
$operation="default";
if ($info->Unread > 0)
{
for ($q = 0; $q < $count; $q++) {
$mail_number = $unread[$q];
$im = imap_fetchstructure($pop, $mail_number);
//echo "<pre>";
//print_r($im);
//echo "</pre>";
if(property_exists($im,"parts"))
{
$filename = $im->parts[1]->dparameters[0]->value;
if(substr($filename,0,7)=="=?utf-8?B")
{
$filename = mb_convert_encoding($filename,"windows-1251","utf-8");
}
if(!preg_match("#(.*)\.([a-z])#i",$filename))
{
$mime=imap_mime_header_decode($filename);
$file=$mime[0]->text;
$ext=".xls";
$filename=$file.$ext;
}
//$filename=str_replace(" ","_",$filename);
echo ($q+1)." ".$filename."<br />";
$file = imap_fetchbody($pop, $mail_number, '2'); // соответственно первое письмо, второй раздел
$attach = base64_decode($file);
$file=fopen($filename,"wb");
fputs($file,$attach);
fclose($file);
}
}
}
imap_close($pop);
?>