使用PHP保存IMAP XLS附件

使用PHP保存IMAP XLS附件,php,imap,xls,Php,Imap,Xls,我已经写了一个脚本来检查我的Gmail帐户,并从邮件中提取XLS文件附件。我使用以下代码从身体抓取附件: $mege = imap_fetchbody($connection,$message_number,2); 正在检索该邮件。以下是上述代码的输出示例: -Apple Mail=_9EBAFC63-4E12-4E64-A4F9-F8D5834F3523内容传输编码:7bit内容类型:text/html;charset=us ascii-Apple Mail=_9EBAFC63-4E12-4

我已经写了一个脚本来检查我的Gmail帐户,并从邮件中提取XLS文件附件。我使用以下代码从身体抓取附件:

$mege = imap_fetchbody($connection,$message_number,2);
正在检索该邮件。以下是上述代码的输出示例:

-Apple Mail=_9EBAFC63-4E12-4E64-A4F9-F8D5834F3523内容传输编码:7bit内容类型:text/html;charset=us ascii-Apple Mail=_9EBAFC63-4E12-4E64-A4F9-F8D5834F3523内容处置:附件;filename=test.xls内容类型:应用程序/八位字节流;x-mac-type=584C5338;x-mac-creator=5843454C;x-unix-mode=0644;该公司的名称=试验试验未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知未知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知////////////////////////////////////////////////////////////////////////////////////BabbagiacGBPadeahgdwaaaacqaaaaia2gcbqwbhagwaaqbiaaqaxab4a8aaaagagakaea

这是预期的,因为XLS文件是base64编码的。然而,当我解码消息并保存到文件时,我得到的是一个空的excel文件。但是,它是一个excel文件

在写入文件之前,我使用此选项对内容进行解码:

$message=imap_base64($mege);

我想知道是否还有什么我应该做的附件,以填充文件

您正在获取邮件的全部内容,而不仅仅是附件。缺少的是解析MIME结构、定位实际感兴趣的部分、从MIME容器中提取该部分的代码,并且仅在根据内容传输编码头(在这种特定情况下为base64)进行解码之后。你只是不能盲目地解码整个身体,并希望得到一个附件作为回报