IMAP这是什么类型的头编码?

时间:2012-09-25 17:54:34

标签: php email encoding imap

为什么我的主题看起来像这样?

From: "Website Magazine"
 <news@websitemagazine.com>
To: xxxxxxxxx@aol.com
Date: 20 Sep 2012 15:36:20 -0400
Subject: =?utf-8?B?MTQgTmV3LWlzaCBBUEnigJlzIGZvciBEZXZlbG9wZXIgSW5z?=
 =?utf-8?B?cGlyYXRpb24=?=

在gmail中,它显示为14 New-ish API’s for Developer Inspiration

我正在使用PHP,但只是告诉我 的编码类型应该足以让我解析它。

2 个答案:

答案 0 :(得分:3)

那是base64 encoding

 print base64_decode('MTQgTmV3LWlzaCBBUEnigJlzIGZvciBEZXZlbG9wZXIgSW5z');

你知道,问题是电子邮件中只允许使用ASCII字符,所以如果你有非英文/拉丁文字,你需要对它进行base64编码,以便你可以send it

function mail_utf8($to, $from_user, $from_email, $subject = '(No subject)', $message = '')
{ 
    $from_user = "=?UTF-8?B?".base64_encode($from_user)."?=";
    $subject = "=?UTF-8?B?".base64_encode($subject)."?=";

    $headers = "From: $from_user <$from_email>\r\n". 
               "MIME-Version: 1.0" . "\r\n" . 
               "Content-type: text/html; charset=UTF-8" . "\r\n"; 

    return mail($to, $subject, $message, $headers); 
}

答案 1 :(得分:1)

您正在查看的是base64中编码的字符串。

要解码此字符串,您可以use php for example

echo base64_decode('MTQgTmV3LWlzaCBBUEnigJlzIGZvciBEZXZlbG9wZXIgSW5z');