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) { // From http://w3.org/International/questions/qa-forms-utf-8.html
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收邮件乱码问题的更多相关文章

  1. FOXMAIL提示容量满无法收邮件,清除旧邮件后还是无法收取,请问如何解决?

    FOXMAIL提示容量满无法收邮件,清除旧邮件后还是无法收取,请问如何解决? 2009-03-23 11:21包子燕  分类:网站使用 我清除了FOXMAIL所在的磁盘空间,共有12G,也删除了部分旧 ...

  2. centos 邮件服务 腾讯企业邮箱(免费) 使用iRedmail 需要有公网的centos主机 发邮件协议:smtp 端口25 收邮件协议:pop3 端口110 iredmail安装配置 使用邮箱系统 第三十一节课

    centos   邮件服务  腾讯企业邮箱(免费) 使用iRedmail 需要有公网的centos主机 发邮件协议:smtp 端口25  收邮件协议:pop3 端口110  iredmail安装配置 ...

  3. [JBoss] - 解决URI提交时乱码问题

    JBoss 7 AS解决url提交数据乱码的问题: 打开jboss-as-7.1.1.Final\standalone\configuration\standalone.xml文件,在<exte ...

  4. Windows转到linux中,文件乱码,文件编码转换 & 解决sqlplus连接oracle乱码

    转载:http://www.cnblogs.com/wanyao/p/3399269.html 最近,学习又重新开始Linux学习,所以一直在Centos中,昨天一朋友把他在Windows下写的C程序 ...

  5. 教你解决Sublime Text中文乱码问题

    教你解决Sublime Text中文乱码问题[转载自成长的企鹅]       Sublime Text 2是一个非常不错的源代码及文本编辑器,但是不支持GB2312和GBK编码在很多情况下会非常麻烦. ...

  6. 分享一个解决MySQL写入中文乱码的方法

    分享一个解决MySQL写入中文乱码的方法 之前有发帖请教过如何解决MySQL写入中文乱码的问题.但没人会,或者是会的人不想回答.搜索网上的答案并尝试很多次无效,所以当时就因为这个乱码问题搁浅了一个软件 ...

  7. 完美解决Informix的中文乱码问题

    完美解决Informix的中文乱码问题  Informix是IBM旗下的一款数据库,要不是这个项目需要,估计这辈子我都不知道居然还有这么一款数据库.想来公司的项目遍布全国各地,各种部署环境各种应用场景 ...

  8. Gmail邮件功能那么强大,GMail被封,在国内怎么用gmail收邮件?

    IT圈子里最热门的话题一定是:gmail被封,该怎么办?gmail由于强大的邮件功能,ITer一定是人手一个or多个,之前想要收发gmail使用imap或SMTP方式是可以在国内正常使用的,目前ima ...

  9. 使用SQL Server Driver for PHP解决PHP连接MSSQL乱码的问题

    原文 使用SQL Server Driver for PHP解决PHP连接MSSQL乱码的问题 最近帮客户写了一个.net商城网站的发布接口,大家都知道.net一般都使用MSSQL数据库,但鱼丸不会. ...

随机推荐

  1. TypeScript 照猫画虎

    定义变量类型 const num: number = 1 定义函数参数类型 const init: (p: str) => void = function(param) { alert(para ...

  2. HDU 2955 Robberies(概率DP,01背包)题解

    题意:给出规定的最高被抓概率m,银行数量n,然后给出每个银行被抓概率和钱,问你不超过m最多能拿多少钱 思路:一道好像能直接01背包的题,但是有些不同.按照以往的逻辑,dp[i]都是代表i代价能拿的最高 ...

  3. 初始化 Flask 虚拟环境 命令

    参考:<Flask Web开发> 系统:Mac OSX CMD // 激活环境 virtualenv venv source venv/bin/activate // 安装flask pi ...

  4. Python学习札记(三十八) 面向对象编程 Object Oriented Program 9

    参考:多重继承 NOTE #!/usr/bin/env python3 class Animal(object): def __init__(self, name): self.name = name ...

  5. 微信小程序路过——新手不要错过哦!

    应该算是入门篇, 从我怎么0基础然后沿着什么方向走,遇到的什么坑,如何方向解决,不过本人接触不是很多,所以也就了解有限. 小程序的前提: 1.小程序大小不允许超过2M.(也就是本地图片,大图精图不要在 ...

  6. hdu 4747 mex 线段树+思维

    http://acm.hdu.edu.cn/showproblem.php?pid=4747 题意: 我们定义mex(l,r)表示一个序列a[l]....a[r]中没有出现过得最小的非负整数, 然后我 ...

  7. 基于Codis的Redis集群部署

    Codis是基于代理的高性能Redis集群方案,使用Go语言进行开发,现在在在豌豆荚及其它公司内已经广泛使用,当然也包括我们公司. Codis与常见的Redis集群方案对比. 在搭建的时候,个人觉得R ...

  8. Java中的基本数据类型及其封装类

    Java中的数据类型有两种,基本数据类型和引用数据类型,引用数据类型的创建是 需要去new一个对象,该对象的内存分配在堆区,同时栈区会保存一个指向该对象的引用, 但是对于一些简单数据的创建,用new的 ...

  9. Hystrix熔断机制原理剖析

    一.前言 在分布式系统架构中多个系统之间通常是通过远程RPC调用进行通信,也就是 A 系统调用 B 系统服务,B 系统调用 C 系统的服务.当尾部应用 C 发生故障而系统 B 没有服务降级时候可能会导 ...

  10. ultraedit开发使用技巧

    抛开Mybatis和Hibernate这些dao框架,如果维护老项目时或者不得不用sql拼接时,一个几百行的sql光是去掉navicat中查询的注释或者在sql前后加上双引号就已经很费劲,影响开发效率 ...