background image

查看

 POP3/SMTP 协议的时候想尝试一下自己写一个操作类,核心没啥,就是使用

 

fsockopen

 ,然后写入/接收数据,只实现了最核心的部分功能,当作是学习 Socket 操作的

练手。其中参考了

 RFC 2449 和一个国外的简单 Web 邮件系统 Uebimiau 的部分代码,不过

绝对没有抄他滴,

HOHO,绝对原创。

复制代码

 代码如下:

 
<?php 

class

 SocketPOPClient 

    

var

 

$strMessage

        = ''; 

    

var

 

$intErrorNum

    = 0; 

    

var

 

$bolDebug

        = false; 

 

    

var

 

$strEmail

        = ''; 

    

var

 

$strPasswd

        = ''; 

    

var

 

$strHost

        = ''; 

    

var

 

$intPort

        = 110; 

    

var

 

$intConnSecond

    = 30; 

    

var

 

$intBuffSize

    = 8192;

    

var

 

$resHandler

        = NULL; 

    

var

 

$bolIsLogin

        = false; 

    

var

 

$strRequest

        = ''; 

    

var

 

$strResponse

    = ''; 

    

var

 

$arrRequest

        = 

array

(); 

    

var

 

$arrResponse

    = 

array

();

 

    

//--------------- 

    

// 基础操作 

    

//---------------

    

//构造函数 

    

function

 SocketPOP3Client(

$strLoginEmail

$strLoginPasswd

$strPopHost

='', 

$intPort

='') 

    

        

$this

->strEmail        = trim(

strtolower

(

$strLoginEmail

)); 

        

$this

->strPasswd    = trim(

$strLoginPasswd

); 

        

$this

->strHost        = trim(

strtolower

(

$strPopHost

));

        

if

 (

$this

->strEmail=='' || 

$this

->strPasswd=='') 

        

            

$this

->setMessage('Email address or Passwd is empty', 1001); 

            

return

 false; 

        

        

if

 (!PReg_match("/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/i", 

$this

->strEmail)) 

        

            

$this

->setMessage('Email address invalid', 1002); 

            

return

 false;