簡體   English   中英

如何使用帶有PhP的imap獲取電子郵件正文的特殊字符?

[英]How to get special characters of the body of an email using imap with PhP?

我正在將imap與php結合使用,以獲取電子郵件的正文。

到目前為止的代碼,最后沒有得到特殊字符和奇怪的格式。 例如,如果我給自己發送一封電子郵件(使用常規的電子郵件客戶端,例如Apple Mail),其中包含:

用字符éà和一些字符測試! 那塊石頭。

我得到的PHP是:

用字符= C3 = A9 = C3 = A0和一些字符測試! 那塊石頭。=

我試圖通過帶有這些標頭的php的郵件功能重新發送正文,但是我仍然遇到相同的問題。

$headers="From: address@email.com" . "\r\n" . "MIME-Version: 1.0" . "\r\n" . "Content-type:text/html;charset=UTF-8";
mail($sendTo, $message, $noBody, $headers);

我嘗試過addslashes() ,它也沒有幫助。

我的代碼示例在這里:

$imapLink=imap_open("{".$mailbox."}INBOX",$username,$password);
$mailBoxInfos = imap_check($imapLink);
$mailList = imap_fetch_overview($imapLink,"1:".$mailBoxInfos->Nmsgs);
if(isset($mailList))
{
    $numMess = imap_num_msg($imapLink);
    while($numMess>0) {
        $message = imap_body($imapLink, $numMess);
        $numMess --;
    }
}
$imapClose = imap_close($imapLink);

希望你能幫助我!

提前致謝!

亞瑟

您在文本中看到的=XX稱為“帶報價的內容”。 用於顯示無法以7位顯示的字符。

您可以使用quoted_printable_decode()將其轉換回可讀的字符串。

所以這應該工作:

$message = imap_body($imapLink, $numMess);
$message = quoted_printable_decode($message); // <-- add this line
$numMess --;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM