簡體   English   中英

如何解碼 email 中的主題?

[英]how to decode the subject in an email?

我已發送主題行為的郵件

[BILLING #PHY-945-49853]: [Ticket #12622] Payment Method

但是在消息的來源中,該行如下所示

Subject: =?UTF-8?B?W1NBTEVTICNCQk4tOTM1LTM3OTE3XTogW1RpY2tldCAjMTI2MjJdIFBheW1lbnQ=?=
=?UTF-8?B?IE1ldGhvZA==?=

它編碼在 Base64 中。 如何使用 php 將其解碼回英文的原始主題行? 我嘗試使用 php base64_decode($subject)但它沒有將其解碼為原始主題([BILLING #PHY-945-49853]: [Ticket #12622] Payment Method)

我還附上了一個示例 email 消息:

Return-Path: .........
X-Original-To: ..........
Delivered-To: ........
Received: ......
X-DKIM: ........
Received:....
To: ....
Subject: =?UTF-8?B?W1NBTEVTICNCQk4tOTM1LTM3OTE3XTogW1RpY2tldCAjMTI2MjJdIFBheW1lbnQ=?=
=?UTF-8?B?IE1ldGhvZA==?=
From: =?UTF-8?B?U0FWVllFSE9TVElORyBTQUxFUw==?=
X-Priority: ..
X-MSMail-Priority: normal
X-MimeOLE: Produced By Kayako Fusion v4.01.204
X-Mailer: Kayako Fusion v4.01.204
Reply-To: .......
Date: .....
Content-Type: multipart/alternative;
boundary="=_1.64496c432f57488924404b338155a2d7"
MIME-Version: 1.0
Message-Id: ....

這是一條 MIME 格式的消息。 如果你看到這個,你的郵件閱讀器不支持這種格式。

--=_1.64496c432f57488924404b338155a2d7
Content-Type: text/plain;
charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline


------------------------------------------------------
Support Center:
Content-Type: text/html;
charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

您可能正在尋找iconv_mime_decode

從鏈接:

 string iconv_mime_decode ( string $encoded_header [, int $mode = 0 [, string $charset = ini_get("iconv.internal_encoding") ]] )

解碼 MIME header 字段。

你的例子:

echo iconv_mime_decode($string);

產量:

Subject: [SALES #BBN-935-37917]: [Ticket #12622] Payment

我也遇到了這個問題,並想出了一條替代路線來解決這個問題。 對於其他展望未來的人來說,這可能會有所幫助。

一旦我意識到消息的哪一部分實際上是字符串的 Base64 部分,我將這段代碼拼湊在一起;

if(stripos($subject, "=?utf-8?b?") !== false) {
    $output = str_ireplace("=?utf-8?B?", "", $subject);
    $output = str_replace("==?=", "", $output);
    $output = base64_decode($output);
}else{
    $output = $subject;
}

實際上,您正在做的是檢測字符串在面對 base64。 然后在使用base64_decode()解碼之前修剪標識符

確保您使用不區分大小寫的字符串函數版本,因為並非所有郵件提供商都使用大寫或小寫。

**很抱歉回答一個老問題,但我發現這是一個更有用的選擇。

暫無
暫無

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

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