程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 使用PHP的Socket寫的POP3類(一)

使用PHP的Socket寫的POP3類(一)

編輯:關於PHP編程

查看 POP3/SMTP 協議的時候想嘗試一下自己寫一個操作類,核心沒啥,就是使用 fsockopen ,然後寫入/接收數據,只實現了最核心的部分功能,當作是學習 Socket 操作的練手。其中參考了 RFC 2449和一個國外的簡單Web郵件系統 Uebimiau 的部分代碼,不過絕對沒有抄他滴,HOHO,絕對原創。假如你喜歡,請收藏,隨便修改,嗯,但是記得不要刪除偶類裡的聲名,究竟偶也是辛辛勞苦寫了好幾天吶。
另外,歡迎自由發揮,改善或者修正這個類,希望能夠為你所用。代碼沒有認真仔細的調試,發現bug請自己修正,HOHO!

<?php
/**
* 類名:SocketPOPClient
* 功能:POP3 協議客戶端的基本操作類
* 作者:heiyeluren <http://blog.csdn.net/heiyeshuwu>
* 時間:2006-7-3
* 參考:RFC 2449, Uebimiau
* 授權:BSD License
*/

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;
}
if ($this->strHost=='')
{
$this->strHost = substr(strrchr($this->strEmail, "@"), 1);
}
if ($intPort!='')
{
$this->intPort = $intPort;
}
$this->connectHost();
}

//連接服務器
function connectHost()
{
if ($this->bolDebug)
{
echo "Connection ".$this->strHost." ...rn";
}
if (!$this->getIsConnect())


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved