前一斷時間我打算做一個 —— 使用者註冊完後把註冊資訊發送到使用者的郵箱的東西,
放到我在mvbb租的空間裡。當然我打算php實現。然而php自身只帶了個mail()用來
發送郵件。不過用mail()的前提是要有一個郵件系統(Qmail阿之類的)。但在我租的
一般空間上,是不可能有的。能不能使用我在www.126.com註冊的帳號,然後用126的
smtp發送呢?單純用mail()肯定是不行的了,因為mail()不提供驗證的介面。
好了,下面該說怎麼做了。(少廢話,快給原始碼!! >_<!!)
知道了,原始碼如下:
<?php
require_once 'Mail.php';
$conf['mail'] = array(
'host' => 'smtp.126.com', //smtp伺服器位址
'auth' => true, //true表示smtp伺服器需要驗證,false不需要
'username' => 'liangbowen', //使用者名稱
'password' => '******' //密碼
);
//發送郵件
$headers['From'] = 'liangbowen@126.com'; //發信地址
$headers['To'] = 'liangbowen@hotmail.com'; //收信地址
$headers['Subject'] = 'test mail send by php bowen.mvbb.com'; //郵件標題
$mail_object = &Mail::factory('smtp', $conf['mail']);
//郵件內文
$body = "這是一封自己發給自己的郵件。";
$mail_res = $mail_object->send($headers['To'], $headers, $body); //發送
if(PEAR::isError($mail_res)){ //檢測錯誤
die($mail_res->getMessage());
}
else{
echo "send successful!";
}
?>
如你所見,要用到PEAR的socket和smtp類,可以上PEAR去下載。當然你也可以自己寫smtp和socket的類。
付源碼:http://www.liangbowen.com/downloads/mail.zip
因為是供學習參考,裡面只是個很簡單的例子,檔案也有些亂。