簡體   English   中英

PHP / IMAP:內容郵件MIME轉換

[英]PHP/IMAP : Content mail MIME convert

我在這個主題上看過很多話題,但是都沒有解決我的問題。 請考慮這是我第一次使用IMAP,並且我想念一些東西。 我想將郵箱中收到的郵件轉換為“命令類型”。 除了以MIME編碼的郵件內容(我認為是這樣)之外,其他所有東西都起作用,而且我不知道如何在UTF-8上獲取它。 請注意,我是法語,所以我使用的是éèâçôì等字符,請參見下面的代碼:

if($imap = @imap_open($server , $username, $password)) {
    $num = imap_num_msg($imap);

    while($num > 0) {
        $sujet      = imap_mime_header_decode(cropSubject($headers->subject));
        $time       = $headers->udate;
        $fromMail   = $headers->from[0]->mailbox.'@'.$headers->from[0]->host;
        $fromUser   = $headers->from[0]->mailbox;
        $fromHost   = $headers->from[0]->host;
        $content    = nl2br(imap_fetchbody($imap, $num, '1'));

        echo $content;
        echo "<hr>";
    }
}

實際上,我只想顯示所有收到的郵件。 例如,我得到這樣的值:

“你好,

ce un est test de cr = C3 = A9ation direct parmail。

Cordialement“。

代替 :

“你好,

取消測試指示郵件。

Cordialement“。

我見過很多建議同時使用imap_fetchstructure()和imap_fetchbody()的線程,但是我認為這不會解決我的問題。 使用imap_utf8()不起作用。

我也嘗試創建自己的函數,將那些東西轉換為正確的字符..但我認為這不是很好的方法。

任何想法 ?

編輯: quoted_printable_decode()正常工作,除了它用我無法處理的“ = \\ r \\ n”剪掉了很長的線。 我已經在PHP文檔中看到了一個駭客,但這似乎行不通。 下面的代碼。

$content = str_replace("=\r\n", '', quoted_printable_decode($content));

echo $content;

知道我該如何工作嗎?

我使用@Max解決方案+我自己的代碼來完成這項工作。 見下文。

    $content = quoted_printable_decode($content);
    $c = explode("\r\n", $content);

    foreach($c as $key => $value) {
        if(substr($value, strlen($value) - 6, strlen($value)) == "<br />" && $value != "<br />" && substr($value, strlen($value) - 7, strlen($value)) != "=<br />") {
            $c[$key] = substr($value, 0, strlen($value) - 6);
        } elseif(strlen($value) >= 7 && substr($value, strlen($value) - 7, strlen($value)) == "=<br />") {
            $c[$key] = substr($value, 0, strlen($value) - 7);
        } elseif($value == "<br />") {
            $c[$key] = "\r\n\r\n";
        }
    }

    $content = implode("", $c);

請注意,這用於將值插入數據庫,而不在頁面上顯示它們。 僅僅炫耀電子郵件是行不通的。

暫無
暫無

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

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