By using imap_fetchbody() you may run in trouble by using too much memory. Using imap_savebody() may prevent this.
But the content will be encoded, in other words it is useless. Adding a filter can help here.
<?php
$whandle = fopen('./incomming/tmp.tif','w');
stream_filter_append($whandle,
'convert.base64-decode',STREAM_FILTER_WRITE);
imap_savebody ($mbox, $whandle, $i, $partcounter++);
fclose($whandle);
?>
NOTE: To find the proper filter you need to check the encoding given by the structure of the body.imap_savebody
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
imap_savebody
Референца за `function.imap-savebody.php` со подобрена типографија и навигација.
imap_savebody
(PHP 5 >= 5.1.3, PHP 7, PHP 8)
imap_savebody — (PHP 5 >= 5.1.3, PHP 7, PHP 8)
= NULL
IMAP\Connection
$imap,resource|string|int
$file,int
$message_num,string
$section = "",int
$flags = 0): bool
Зачувај специфичен дел од телото во датотека
Параметри
-
imap Еден IMAP\Connection instance.
file-
Зачувува дел или цело тело на наведената порака. fopen().
message_num-
Број на пораката
section-
Бројот на делот. Тоа е низа од цели броеви разделени со точка што индексираат во листата на делови од телото според спецификацијата IMAP4
flags-
Битови маска со едно или повеќе од следниве:
-
FT_UID- Наmessage_numе UID -
FT_PEEK- Не поставувајте го знамето \Seen ако веќе не е поставено -
FT_INTERNAL- Вратениот стринг е во внатрешен формат, нема да се канонизира до CRLF.
-
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.1.0 |
На imap параметарот очекува IMAP\Connection
инстанца сега; претходно, валидна imap resource се очекуваше.
|