0

我正在努力在电子邮件存储到数据库之前对其进行清理。一封 fandango 电子邮件被发送为编码为 4(引用打印)。这是未解码的消息的一部分...

=0A=0A=A0=0AJohn=0A(800) 123-4567=0A=0A-----转发消息=

=20=0ASent:=20Thursday,=20July=204,=202013=204:14=20PM=0ASubject:=20Your=20Despicab=

le=20Me=202=20iTunes=20Download=0A=20=0A=0A=0ADespicable=20Me=202=20=0A=20=20=0A=20Your=20purchase=20=

of=20tickets=20for=20Despicable=20Me=202=20has=20earned=20you=20a=20complimentary=20download=20of=20t=

he=20song=20'Just=20a=20Cloud=20Away'=20by=20Pharrell=20from=20the=20Original=20Motion=20Picture=20So=

undtrack=20on=20iTunes.=20=0AWe=20hope=20you=20enjoy=20the=20song=20and=20the=20film!=0AIf=20you=20ha=

ve=20iTunes=20installed,=20click=20here=20to=20start=20your=20complimentary=20download.=0AIF=20=

你=20DO=20NOT=20HAVE=20iTunes=20INSTALLED:=0A=0A1.=20Download=20iTunes=20for=20Mac=20or=20Window=

s,=20free=20of=20charge=20at=20www.iTunes.com.=20=0A2.=20Open=20iTunes=20and=20click=20iTunes=20Sto=

re.=20=0A3.=20Click=20Redeem=20under=20Quick=20Links.=20=0A4.=20Enter=20the=20code=20below.=20Your=20=

download=20will=20start=20immediately.=20Enjoy.=20=0ADownload=20Code:=20FML6H34XXTMJ=20=0AC=

但是当我quoted_printable_decode()在变量上使用它时,它不会产生任何文本。


这个网址有一个可以工作的解码器,尽管在 ASP/VB 中......

http://www.motobit.com/util/quoted-printable-decoder.asp

我猜这里的代码是相关的......

http://www.motobit.com/tips/detpg_quoted-printable-decode/

它正确解码了上面的报价打印 HTML。希望这会帮助那些试图帮助我的人。我确定我不是唯一一个遇到损坏的可打印报价单的电子邮件的人。

4

2 回答 2

0

您发布的带引号的可打印编码字符串中似乎有一些空格。这可能是导致问题的原因 - 如果它真的是可引用打印的,那么编码的字符串不应包含任何空格。在引用的可打印中,空格 = 20。如果您使用替换函数(例如 PHP 的 str_replace)将编码字符串中的空格替换为 =20,那么您将获得以下带引号的可打印编码字符串:

约翰=0D=0A(800)=20123-4567=0D=0A=0D=0A-----=20转发=20消息=20

然后,可以使用 PHP 的quoted_printable_decode() 函数对该字符串进行解码。

于 2013-07-08T16:01:35.383 回答
0

如果将上面的带引号的可打印编码文本复制到文件中,则运行以下 PHP 脚本(它从文件中读取带引号的可打印文本,使用 str_replace 函数去除空格,然后使用解码带引号的可打印文本quoted_printable_decode 函数),您应该看到它产生了正确的解码输出:

 <?
 $filename="./qp.txt";
 $file = fopen($filename,"r");
 $qp = fread($file,filesize($filename));
 fclose($file);

 $qp=str_replace(" ", "", $qp);
 print "<plaintext>";    
 print quoted_printable_decode($qp);
 ?>
于 2013-07-09T19:45:37.453 回答