首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用PHP保存IMAP XLS附件

用PHP保存IMAP XLS附件
EN

Stack Overflow用户
提问于 2013-04-24 03:38:25
回答 1查看 465关注 0票数 1

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

代码语言:javascript
复制
$mege = imap_fetchbody($connection,$message_number,2);

邮件正在被正常检索。以下是上述代码的输出示例:

-Apple-Mail=_9EBAFC63-4E12-4E64-A4F9-F8D5834F3523内容传输编码: 7bit Content-Type: text/html;charset=us-ascii --Apple-Mail=_9EBAFC63-4E12-4E64-A4F9-F8D5834F3523 Content-Disposition:附件;filename=test.xls Content-Type:应用程序/八位字节-流;x-mac-type=584C5338;x-mac-creator=5843454C;x-unix-mode=0644;name="test.xls“内容传输编码: base64 0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAA EAAAIQAAAAEAAAD+////AAAAAAAAAAD///////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////bABpAGIAcgBpADEAHgDwAAAACACQAQAAAAIA2gcBQwBhAGwAaQBiAHIAaQAxAB4A8AAAAAgAkAEA...

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

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

代码语言:javascript
复制
$message=imap_base64($mege);

我想知道,为了填充文件,我是否应该对附件执行更多操作。

EN

回答 1

Stack Overflow用户

发布于 2013-04-24 04:59:47

您正在获取邮件的整个正文,而不仅仅是附件。缺少的是解析MIME结构的代码,定位实际感兴趣的部分,从MIME容器中提取该部分,然后根据Content-Transfer-Encoding标头(本例中的"base64“)进行解码。你不能盲目地对整个身体进行base64解码,并希望得到一个附件作为回报。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16177779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档