解决php收邮件乱码问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
function test($strHead){  
if(ereg("=\?.{0,}\?[Bb]\?",$strHead)){  
  $arrHead=split("=\?.{0,}\?[Bb]\?",$strHead);  
  while(list($key,$value)=each($arrHead)){  
    if(ereg("\?=",$value)){  
      $arrTemp=split("\?=",$value);  
      $arrTemp[0]=base64_decode($arrTemp[0]);  
      $arrHead[$key]=join("",$arrTemp);  
    }  
  }  
  $strHead=join("",$arrHead);  
}  
  return $strHead;  
}  
 
function is_utf8($string) { 
       
    return preg_match(‘%^(?: 
          [\x09\x0A\x0D\x20-\x7E]            # ASCII 
        | [\xC2-\xDF][\x80-\xBF]             # non-overlong 2-byte 
        |  \xE0[\xA0-\xBF][\x80-\xBF]        # excluding overlongs 
        | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}  # straight 3-byte 
        |  \xED[\x80-\x9F][\x80-\xBF]        # excluding surrogates 
        |  \xF0[\x90-\xBF][\x80-\xBF]{2}     # planes 1-3 
        | [\xF1-\xF3][\x80-\xBF]{3}          # planes 4-15 
        |  \xF4[\x80-\x8F][\x80-\xBF]{2}     # plane 16 
    )*$%xs‘, $string); 
       
 
 
for($i=$tot;$i>0;$i--)
{
    $head=$obj->getHeaders($i);  // Get Header Info Return Array Of Headers **Array Keys are (subject,to,toOth,toNameOth,from,fromName)
    //echo "Subjects :: ".$head[‘subject‘]."<br>";
     $s=test($head[‘subject‘]); 
    if(is_utf8($s)==‘1‘){ 
    echo iconv(‘UTF-8‘,‘gb2312‘,$s) ;  
    }else
        echo $s
    
    echo "<br>"
    echo "base :: ".iconv("GB2312", "utf-8", base64_decode(‘5rWL6K+V‘))."<br>";
    echo "TO :: ".$head[‘to‘]."<br>";
    echo "To Other :: ".$head[‘toOth‘]."<br>";
    echo "ToName Other :: ".$head[‘toNameOth‘]."<br>";
    echo "From :: ".$head[‘from‘]."<br>";
    echo "FromName :: ".$head[‘fromName‘]."<br>";
    echo "<br><br>";
    echo "<br>*******************************************************************************************<BR>";
    echo $obj->getBody($i);  // Get Body Of Mail number Return String Get Mail id in interger
     
    $str=$obj->GetAttach($i,"./"); // Get attached File from Mail Return name of file in comma separated string  args. (mailid, Path to store file)
    $ar=explode(",",$str);
    foreach($ar as $key=>$value)
        echo ($value=="")?"":"Atteched File :: ".$value."<br>";
    echo "<br>------------------------------------------------------------------------------------------<BR>";
     
    //$obj->deleteMails($i); // Delete Mail from Mail box
}

 imap_append :     附加字符串到指定的邮箱中。
imap_base64 :     解 base64 编码。
imap_body :     读信的内文。
imap_check :     返回邮箱信息。
imap_close :     关闭 imap 链接。
imap_createmailbox :     建立新的信箱。
imap_delete :     标记欲删除邮件。
imap_deletemailbox :     删除既有信箱。
imap_expunge :     删除已标记的邮件。
imap_fetchbody :     从信件内文取出指定部分。
imap_fetchstructure :     获取某信件的结构信息。
imap_header :     获取某信件的标头信息。
imap_headers :     获取全部信件的标头信息。
imap_listmailbox :     获取邮箱列示。
imap_listsubscribed :     获取订阅邮箱列示。
imap_mail_copy :     复制指定信件到它处邮箱。
imap_mail_move :     移动指定信件到它处邮箱。
imap_num_msg :     取得信件数。
imap_num_recent :     取得新进信件数。

imap_open :     打开 imap 链接。
imap_ping :     检查 imap 是否连接。
imap_renamemailbox :     更改邮箱名字。
imap_reopen :     重开 imap 链接。
imap_subscribe :     订阅邮箱。
imap_undelete :     取消删除邮件标记。
imap_unsubscribe :     取消订阅邮箱。
imap_qprint :     将 qp 编码转成八位。
imap_8bit :     将八位转成 qp 编码。
imap_binary :     将八位转成 base64 编码。
imap_scanmailbox :     寻找信件有无特定字符串。
imap_mailboxmsginfo :     取得目前邮箱的信息。
imap_rfc822_write_address :     电子邮件位址标准化。
imap_rfc822_parse_adrlist :     解析电子邮件位址。
imap_setflag_full :     配置信件标志。
imap_clearflag_full :     清除信件标志。
imap_sort :     将信件标头排序。
imap_fetchheader :     取得原始标头。
imap_uid :     取得信件 uid。
imap_getmailboxes :     取得全部信件详细信息。
imap_getsubscribed :     列出所有订阅邮箱。
imap_msgno :     列出 uid 的连续信件。
imap_search :     搜寻指定标准的信件。
imap_last_error :     最后的错误信息。
imap_errors :     所有的错误信息。
imap_alerts :     所有的警告信息。
imap_status :     目前的状态信息。

解决php收邮件乱码问题,布布扣,bubuko.com

解决php收邮件乱码问题

上一篇:过滤字符串html标签方法


下一篇:Asp.Net之自定义表达式构造器(ExpressionBuilder)