使用 imap_fetchbody() 可能导致内存使用过多而出现问题。使用 imap_savebody() 可以避免这种情况。
但内容将被编码,换句话说,它毫无用处。添加过滤器可以帮助解决这个问题。
<?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);
?>
注意:要找到合适的过滤器,您需要检查主体结构给出的编码。