我真的很困惑,我有一個電子郵件從日誌文件生成,它發送一個電子郵件與正文中的日誌文件的內容。imap_fetch返回垃圾
我做了一些測試,進出口新的IMAP一般的東西,PHP在測試Gmail帳戶,用下面的代碼我可以看到幾百封郵件的整個身體沒有問題:
$mailbox = "[email protected]";
$mailboxPassword = "xxxx";
$mailbox = imap_open("{imap.gmail.com:993/imap/ssl}INBOX", $mailbox, $mailboxPassword);
$mail = imap_search($mailbox,'ALL');
if(empty($mail)) die('No unread emails found!');
foreach ($mail as $key => $val)
{
// Retrieving message headers
$headers = imap_headerinfo($mailbox, $val);
// Retrieving subject
$subject = $headers->subject;
PS我可呼應主題,所有返回精細
mb_internal_encoding("UTF-8");
$subject = mb_decode_mimeheader(str_replace('_', ' ', $subject));
$body_pre = imap_fetchbody($mailbox, $val, 1);
$body = $body_pre ? imap_qprint(imap_fetchbody($mailbox, $val, 2)) : imap_qprint(imap_fetchbody($mailbox, $val, 1));
if (empty($body))
{
$body = $body_pre;
}
現在代碼可能是凌亂的,我基本上接手別人的代碼,並使其爲我工作,我加入了,如果空單,因爲一些人體的的返航空,一旦我補充說,它工作正常。我知道它是由於俄羅斯/法國編碼,所以雖然信息顯示罰款俄羅斯/法國字符不正確顯示,但至少不是空的
無論如何,基本上我所做的是採取原來的電子郵件,轉發到這個測試帳戶,運行該代碼,如果我呼應$身體,我可以看到每個電子郵件正文。
現在問題發生時,我採取了完全相同的電子郵件,所有電子郵件日誌從基本上發送作爲電子郵件的txt文件,但當我在收件箱中運行相同的查詢基本上只有差異,他們有FW:在主題嗯,這是什麼體輸出爲:
SE0yIENyYXNoIExvZyBDb250ZW50cyBCZWxvdzo8YnIgLz48YnIgLz5Vc2VyIEVtYWlsOiBBbm9u LiAtIE5vdCBTdXBwbGllZDxhbm9uQGhvbGRlbW1hbmFnZXIuY29tPjxiciAvPkJ1aWxkIEluZm86 IDIuMC4wLjc2NjU8YnIgLz5Vc2VyIERlc2NyaXB0aW9uOiBOL0E8YnIgLz48YnIgLz5Mb2cgRmls ZSBDb250ZW50czogPGJyIC8 + PGJyIC8 + MDE6MTI6MTMuMTEwIFtNYWluOjEgLSBVbml0eUJvb3Rz dHJhcHBlci5SdW5dIDxiciAvPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX18gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPg0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICggICApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPg0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IHwgLi0uICAgIF9fXyAuLS4gLi0uICAgICAuLS0uICAg IDxiciAvPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHwvICAgXCAgKCAgICkgICAn
而且body_pre呼應的空
我試圖改變這個也和呼應所有這些,他們都顯示爲空白
$body_pre0 = imap_fetchbody($mailbox, $val);
$body_pre = imap_fetchbody($mailbox, $val, 1);
$body_pre1 = imap_fetchbody($mailbox, $val, 1.1);
$body_pre2 = imap_fetchbody($mailbox, $val, 1.2);
$body_pre3 = imap_fetchbody($mailbox, $val, 2);
$body_pre4 = imap_fetchbody($mailbox, $val, 2.0);
$body_pre5 = imap_fetchbody($mailbox, $val, 2.1);
$body_pre6 = imap_fetchbody($mailbox, $val, 2.2);
$body_pre7 = imap_fetchbody($mailbox, $val, 2.3);
echo "Body 0: <br /><br /><br />" . $body_pre0 . "<br />";
echo "Body 1: <br /><br /><br />" . $body_pre . "<br />";
echo "Body 1.1: <br /><br /><br />" . $body_pre1 . "<br />";
echo "Body 1.2: <br /><br /><br />" . $body_pre2 . "<br />";
echo "Body 2: <br /><br /><br />" . $body_pre3 . "<br />";
echo "Body 2.0: <br /><br /><br />" . $body_pre4 . "<br />";
echo "Body 2.1: <br /><br /><br />" . $body_pre5 . "<br />";
echo "Body 2.2: <br /><br /><br />" . $body_pre6 . "<br />";
echo "Body 2.3: <br /><br /><br />" . $body_pre7 . "<br />";
我是個有點失落,很想一點指導,所以我不新年前失去我的心:)
電子郵件有一堆機密的東西,我可以用所有的衝裁添加它如果它有幫助,但我認爲,因爲轉發電子郵件的作品,而不是原來的可能一些編碼類型問題或明顯的東西,但讓我知道如果添加,有助於,大多數電子郵件是巨大的,所以它將需要很長時間來編輯所有機密信息但可以做,如果你請
阿哈看起來像是在某處,但我仍然不能得到我需要的輸出,我試圖編輯它到這個: $ body = $ body_pre?imap_base64(imap_fetchbody($ mailbox,$ val,2)):imap_base64(imap_fetchbody($ mailbox,$ val,1)); 但同樣的結果? – user1547410
好吧,我剝去了qprint線,只是做到了這一點,它的工作,謝謝你的提示 $ body = imap_fetchbody($ mailbox,$ val,1); $ body = base64_decode($ body); – user1547410