如何在電子郵件中獲取附件?獲取附件 - imap_fetchbody()
代碼
$structure = imap_fetchstructure($this->stream, $this->msgno);
//print_r($structure);
if(isset($structure->parts)){
foreach($structure->parts as $section => $part){
if(isset($part->disposition)){
if(strtolower($part->disposition) == 'attachment'){
echo 'section = '.$section."\n";
$body = imap_fetchbody($this->stream, $this->msgno, $section);
$finfo = new finfo(FILEINFO_MIME);
echo $finfo->buffer($body) . "\n";
$file = Init::$dynamic['data_path'].$this->msgno.'_'.$part->dparameters[0]->value;
imap_savebody($this->stream, $file, $this->msgno, $section);
echo $finfo->file($file) . "\n";
//print_r($body);
}
}
}
}
返回的附件甚至沒有接近正確的文件大小和返回的數據看起來是這樣
ZHUga2VuZGVyIHZlbCBpa2tlIG5vZ2VuIHNvbSBlciB2ZWQgYXQgc3RhcnRlIGVnZW4gdmly
a3NvbWhlZCBlbGxlciBzb20gbGlnZSBlciBzdGFydGV0IG9wPyA6KQ0KDQpmb3JkaSBqZWcg
bmV0b3AgZXIgYmxldmV0IGbmcmRpZyBtZWQgYXQgbGF2ZSBldCD4a29ub21pc3lzdGVtIG1l
ZCBlbiByZXZpc29yIHNvbSBlciB1ZHZpa2xldCBtZWQgc+ZybGlndCBoZW5ibGlrIHDlIGl2
5nJrc+Z0dGVyZSBzb20gb2Z0ZSBpa2tlIGhhciBkZW4gc3RvcmUgaW5kc2lndCBpIPhrb25v
bWkgOik=
相同文件要麼具有相同的文件大小,即使他們是副本
http://php.net/manual/en/function.imap-base64.php可能會幫助 –