【问题标题】:PHP quoted_printable_decode not working on Fandango plain/text emailsPHPquoted_printable_decode 不适用于 Fandango 纯/文本电子邮件
【发布时间】:2013-07-05 05:24:33
【问题描述】:

我正在努力在电子邮件存储到数据库之前对其进行清理。一封 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() 时,它不会产生任何文本。


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

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

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

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

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

【问题讨论】:

    标签: php email quoted-printable


    【解决方案1】:

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

    约翰=0D=0A(800)=20123-4567=0D=0A=0D=0A-----=20Forwarded=20Message=20

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

    【讨论】:

    • 嗯,这似乎让我朝着正确的方向前进。你还看到什么吗?我已经用电子邮件的大部分内容更新了我的问题。我考虑过手动转换它,我不想单独在这个问题上浪费三天时间。告诉我,谢谢!
    【解决方案2】:

    如果您将上述带引号的可打印编码文本复制到文件中,则运行以下 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);
     ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-29
      • 2010-11-10
      • 2012-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多