2012-01-03 148 views
0

我试图下载和同步imap电子邮件,但是当我用imap_body下载某些消息时,字符串被截断,它没有像我期望的那样检索整个原始消息,我是否错过了什么?这是我的代码:PHP imap_body被截断

$raw_headers = imap_fetchheader($imap, $msgno); 
$message = $raw_headers; 
$message .= imap_body($imap, $msgno); 
echo $message; 

的一些消息的最后一部分将配件去其截断,这样,这个特殊的消息居然有2个附件,但只显示一个的一部分,可有人请帮我想出解决办法:

HEADERS GO HERE 

This is a multi-part message in MIME format. 

------_=_NextPart_001_01CB2F48.59B2C620 
Content-Type: multipart/alternative; boundary="----_=_NextPart_002_01CB2F48.59B2C620" 

------_=_NextPart_002_01CB2F48.59B2C620 
Content-Type: text/plain; charset="us-ascii" 
Content-Transfer-Encoding: quoted-printable 
PLAIN CONTENT GOES HERE 
------_=_NextPart_002_01CB2F48.59B2C620 
Content-Type: text/html; charset="us-ascii" 
Content-Transfer-Encoding: quoted-printable 
HTML CONTENT GOES HERE 

------_=_NextPart_002_01CB2F48.59B2C620-- 

------_=_NextPart_001_01CB2F48.59B2C620 
Content-Type: application/vnd.ms-excel; name="HPHS burnett,gJul14.xls" 
Content-Transfer-Encoding: base64 
Content-Description: HPHS burnett,gJul14.xls 
Content-Disposition: attachment; filename="HPHS burnett,gJul14.xls" 

0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAACAAAAkAAAAAAAAAAA 
EAAAjAAAAAEAAAD+////AAAAAJIAAACRAAAA//////////////////////////////////////// 
//////////////////////////////////////////////////////////////////////////// 
//////////////////////////////////////////////////////////////////////////// 
////////////////////////// 

回答

0

我曾与imap_body类似的问题,所以我想不是保存人体文件和回声文件内容使用imap_savebody,这对我来说工作得很好。 希望它适合你。

编号:imap_savebody

+0

我希望能够保存整个原始消息,与imap_savebody我仍然弄清楚哪部分得到... – MikeGA 2012-01-03 04:25:40

+0

OMG!调用这个没有零件号码的函数会得到整个消息没有任何问题! – MikeGA 2012-01-03 04:37:17

+0

imap_savebody($ imap,'test.txt',$ msgno); //这工作! – MikeGA 2012-01-03 04:38:10