用PHP实现POP3邮件的收取(二)
用PHP实现POP3收取邮件的类 (作者:陈俊清 2000年10月18日 11:56) 现在让我们来用PHP实现一个通过POP3协议收取信件的类吧,这个类中所用到的一些sock操作的函数,不另做特殊说明,请参考php的有关资料。通过这个实例,相信你也会和我一样,感觉到PHP中对于sock操作的灵活、方便和功能的强大。 首先,我们来说明一下这个类中需要用到的一些内部成员变量:(这些变量应该都是对外封闭的,可是由于php对类的成员变量没有private与publice之类的分别,只好就这么直接定义了。这是PHP的一个令人遗憾的地方。) 1.成员变量说明 class pop3 { var $hostname=""; // POP主机名 var $port=110; // 主机的POP3端口,一般是110号端口 var $timeout=5; // 连接主机的最大超时时间 var $connection=0; // 保存与主机的连接 var $state="DISCONNECTED"; // 保存当前的状态 var $debug=0; // 做为标识,是否在调试状态,是的话,输出调试信息 var $err_str=''''; // 如果出错,这里保存错误信息 var $err_no; //如果出错,这里保存错误号码 var $resp; // 临时保存服务器的响应信息 var $apop; // 指示需要使用加密方式进行密码验证,一般服务器不需要 var $messages; // 邮件数 var $size; //各邮件的总大小 var $mail_list; // 一个数组,保存各个邮件的大小及其在邮件服务器上序号 var $head=array(); // 邮件头的内容,数组 var $body=array(); // 邮件体的内容,数组; 2.当然,这其中的有些变量,仅通过这样一个简单的说明并不能完全了解如何使用,下面我就逐个来说明这个类实现中的一些主要方法: Function pop3($server="192.100.100.1",$port=110,$time_out=5) {$this->hostname=$server; $this->port=$port; $this->timeout=$time_out; return true; } 熟悉面向对象编程的朋友一看就会知道,这是这个类的构造函数,在初始化这个类时,可以给出这几个最基本的参数:pop3服务器的地址,端口号,及连接服务器时的最大超时时间。一般来说,只需要给出POP3服务器的地址就行了。 Function open() { if($this->hostname=="") {$this->err_str="无效的主机名!!"; return false; } if ($this->debug) echo "正在打开 $this->hostname,$this->port,&$err_no, &$err_str, $this->timeout<BR>"; if (!$this->connection=fsockopen($this->hostname,$this->port,&$err_no, &$err_str, $this->timeout)) { $this->err_str="连接到POP服务器失败,错误信息:".$err_str."错误号:".$err_no; return false; } else { $this->getresp(); if($this->debug) $this->outdebug($this->resp); if (substr($this->resp,0,3)!="+OK") {$this->err_str="服务器返回无效的信息:".$this->resp."请检查POP服务器是否正确"; return false; } |
查看所有评论
