send_mail類的實現
現在開始介紹我所編寫的發送郵件類。有了上面的預備知識了,下面就是實現了。
類的成員變量
var $lastmessage; //記錄最後返回的響應信息
var $lastact; //最後的動作,字符串形式
var $welcome; //用在HELO後面,歡迎用戶
var $debug; //是否顯示調試信息
var $smtp; //smtp服務器
var $port; //smtp端口號
var $fp; //socket句柄
其中,$lastmessage和$lastact用於記錄最後一次響應信息及執行的命令,當出錯時,用戶可以使用它們。為了測試需要,我還定義了$debug變量,當其值為true時,會在運行過程中顯示一些執行信息,否則無任何輸出。$fp用於保存打開後的socket句柄。
類的構造
function send_mail($smtp, $welcome="", $debug=false)
{
if(empty($smtp)) die("SMTP cannt be NULL!");
$this-$#@62;smtp=$smtp;
if(empty($welcome))
{
$this-$#@62;welcome=gethostbyaddr("localhost");
}
else
$this-$#@62;welcome=$welcome;
$this-$#@62;debug=$debug;
$this-$#@62;lastmessage="";
$this-$#@62;lastact="";
$this-$#@62;port="25";
}
這個構造函數主要完成一些初始值的判定及設置。$welcome用於HELO指令中,告訴服務器用戶的名字。
HELO指令要求為機器名,但是不用也可以。如果用戶沒有給出$welcome,則自動查找本地的機器名。