如何在电子邮件中获取附件?获取附件 - 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可能会帮助 –