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 回答