0

被写体がこのように見えるのはなぜですか?

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を使用していますが、それを解析するのに十分なエンコーディングのタイプを教えてください。

4

2 に答える 2

3

それがbase64エンコーディングです。

 print base64_decode('MTQgTmV3LWlzaCBBUEnigJlzIGZvciBEZXZlbG9wZXIgSW5z');

問題は、電子メールで ASCII 文字のみが許可されていることです。そのため、英語/ラテン語以外のテキストがある場合は、送信できるように base64 でエンコードする必要があります。

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); 
}
于 2012-09-25T17:56:03.083 に答える
1

あなたが見ているのは、base64でエンコードされた文字列です。

この文字列をデコードするには、たとえば php を使用できます。

echo base64_decode('MTQgTmV3LWlzaCBBUEnigJlzIGZvciBEZXZlbG9wZXIgSW5z');
于 2012-09-25T17:55:57.837 に答える