查看
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;