Some mails are encoded in bad quoted printable format:
I use this function to decode the qprint:
for($i=0;$i<256;$i++)
{
$c1=dechex($i);
if(strlen($c1)==1){$c1="0".$c1;}
$c1="=".$c1;
$myqprinta[]=$c1;
$myqprintb[]=chr($i);
}
function decode($data,$code)
{
if(!$code){return imap_utf7_decode($data);}
if($code==0){return imap_utf7_decode($data);}
if($code==1){return imap_utf8($data);}
if($code==2){return ($data);}
if($code==3){return imap_base64($data);}
if($code==4){return imap_qprint(str_replace($myqprinta,$myqprintb,($data)));}
if($code==5){return ($data);}
}
imap_qprint
(PHP 4, PHP 5)
imap_qprint — quoted-printable 文字列を 8 ビット文字列に変換する
説明
string imap_qprint ( string string )(» RFC2045, section 6.7 に基づき)quoted-printable 文字列を 8 ビット文字列に変換します。
パラメータ
- string
quoted-printable 文字列。
返り値
8 ビット文字列を返します。
参考
| imap_8bit() |
imap_qprint
bletous at yahoo dot fr
28-Aug-2005 09:55
28-Aug-2005 09:55
jdr
17-Jul-2003 01:28
17-Jul-2003 01:28
$subject=utf8_decode(imap_utf8($subject));
works instead of imap_qprint on php 4.2.0 (win32)
bernard at bmpsystems dot com
27-Feb-2000 05:35
27-Feb-2000 05:35
This function seems to have a bug, when the quoted-printable string contains a "=" without the HEX code of a Character.
I use the regular quoted_printable_decode instead.