mixer76
Guest
Сохранить аттач из письма в файл.
Через imap_fetchbody получил картинку в качестве строки. Размер строки (через sizeof) равняется 1. если вывести это строку через echo, то нормально выводиться картинка. А если через ImageGif, то не выводиться, т.е. я даже размеры картинки не могу узнать.
Что делать ?
Вот пример кода.
for ($msgid = 1; $msgid <= $num_messages; $msgid++){
echo "message = ".($msgid)."<br/>\n";
$structure = imap_fetchstructure($mbox,$msgid);
if ($structure){
$parts = $structure->parts;
$partnumber=0;
foreach ($structure->parts as $part ){
if (strtoupper($part->disposition) == "ATTACHMENT"){
echo "partnumber=$partnumber<br/>\n";
echo "part->encoding = ".$part->encoding."<br/>\n";
$atype = $part->subtype;
if ($atype =="GIF" || $atype=="JPEG"){
$img = imap_fetchbody($mbox,$msgid, $partnumber+1);
if ($part->encoding == 3)
$img = base64_decode($img);
elseif ($transfer == 4)
$img = imap_qprint($img);
if ($atype =="GIF")
ImageGIF($img,"temp.gif");
else
ImageJPEG($img,"temp.jpg");
// echo img;
} // is gif or jpeg
} // "ATTACHMENT"
$partnumber++;
} //foreach
} // if ($structure)
} // for
Через imap_fetchbody получил картинку в качестве строки. Размер строки (через sizeof) равняется 1. если вывести это строку через echo, то нормально выводиться картинка. А если через ImageGif, то не выводиться, т.е. я даже размеры картинки не могу узнать.
Что делать ?
Вот пример кода.
for ($msgid = 1; $msgid <= $num_messages; $msgid++){
echo "message = ".($msgid)."<br/>\n";
$structure = imap_fetchstructure($mbox,$msgid);
if ($structure){
$parts = $structure->parts;
$partnumber=0;
foreach ($structure->parts as $part ){
if (strtoupper($part->disposition) == "ATTACHMENT"){
echo "partnumber=$partnumber<br/>\n";
echo "part->encoding = ".$part->encoding."<br/>\n";
$atype = $part->subtype;
if ($atype =="GIF" || $atype=="JPEG"){
$img = imap_fetchbody($mbox,$msgid, $partnumber+1);
if ($part->encoding == 3)
$img = base64_decode($img);
elseif ($transfer == 4)
$img = imap_qprint($img);
if ($atype =="GIF")
ImageGIF($img,"temp.gif");
else
ImageJPEG($img,"temp.jpg");
// echo img;
} // is gif or jpeg
} // "ATTACHMENT"
$partnumber++;
} //foreach
} // if ($structure)
} // for