我有一个电子邮件系统,可以使用PHP检索电子邮件,然后将它们放入数据库中。
这样可以正常使用,但有一个问题是电子邮件中嵌入的图像(不是附件)放在电子邮件正文的任何位置。
当我的PHP脚本遇到这些数据时,它将整个邮件解析为一堆垃圾,因为想要一个更好的词,这意味着我根本不知道电子邮件中的内容。
这个部分出现了问题:
$message = imap_fetchbody($inbox,$email_number,1.2);
echo $message;
出现如下内容:
/ 9J / 4AAQSkZJRgABAQEAYABgAAD / 2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIf IiEmKzcvJik0KSEiMEExNDk7Pj4 + JS5ESUM8SDc9Pjv / 2wBDAQoLCw4NDhwQEBw7KCIoOzs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozv / wAARCAAxAI8DASIA AhEBAxEB / 8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL / 8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
是否有人遇到此问题并设法解决或知道如何处理?
我尝试了以下功能,但无济于事:
quoted_printable_decode( $message );
imap_qprint( $message );
imap_utf8( $message );
使用base64_decode( $message )
只需打印如下:
JFIF`` C
%$ “” &安培;!+ 7 /&安培;)4)!“0A149;>>>%DIC;ç
(“(;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;; 1" }!1AQa“Q2#BR $ 3房 %安培;'()* 456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq“2 B #3R br $ 4%&安培;'() 56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz 【J(R [吨m9KOGp [NP 4i % cA ƹx O v$ B o8 Q
答案 0 :(得分:0)
最后,这与抓取电子邮件的错误部分(引用1.2的部分)有关。
这是通过使用我在下面找到的神奇工具解决的,它现在解决了我的问题:
http://www.electrictoolbox.com/php-imap-message-body-attachments/
感谢Max在这里指出了这个问题。