我编写了一个脚本来检查我的 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 内容处置:附件;文件名=test.xls 内容类型:应用程序/八位字节流;x-mac-type=584C5338; x-mac-creator=5843454C; x-unix-模式=0644;name="test.xls" Content-Transfer-Encoding: base64 0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA EAAAIQAAAAEAAAD+////AAAAAAAAAAD//////////////////////// ///////////////////////////////////////// ///////////////////////////////////////// ///////////////////////////////////////// /////////////////////////////bABpAGIAcgBpADEAHgDwAAAACACQAQAAAAIA2gcBQwBhAGwAaQBiAHIAaQAxAB4A8AAAAgAkAEA...
这是意料之中的,因为 XLS 文件是 base64 编码的。但是,当我解码消息并保存到文件时,我得到一个空的 excel 文件。但是,它是一个excel文件。
在写入文件之前,我正在使用它来解码内容:
$message=imap_base64($mege);
我想知道我是否应该对附件做更多的事情来填充文件。