最近看到不少關於用smtp發郵件的文章,其實除了自己寫以外,php的官方組件庫還提供了一個netmail組件可以發送郵件。下面簡單介紹使用的方法
1 下載NetMail,SMTP,SASL,SOCKET等幾個pear組件,當然還包括pear.php這個模組。注意最新版本的檔案裡面最後面缺少 “?>“ 要自己補上。
在你的webapp目錄下建立一個inc/pear目錄,一般不要使用系統的pear庫,因為一可能會有版本問題,二pear使用時需要設定require的路徑,而每一個程式可能都有差別。
把所有的包放在inc/pear裡面後,修改每一個檔案裡面requirel_once的地方,在檔案名稱前面加上你自己的路徑,相對位置從你要執行發送程式的目錄開始,大致如下
require_once(PEAR_PATH.'Mail.php');
裡面的PEAR_PATH可以控制不同目錄下的檔案調用時根據自己的當前所在路徑來具體設定
2 發送程式
設定smtp的訪問使用者名稱,密碼
$params = array('host' => 'localhost',
'port' => '25',
'username' => 'danny@xxx.gov.cn',
'password' => 'danny');
//$to = $test_mail;
$recipients = $to; 接收人,可以是一個數組來存放多個地址
$headers['From'] = $email;
$headers['To'] = $to;
$headers['Subject'] = $subject;
$body = $message;
//選擇smtp的發送方式,當然還支援mail()和sendmail
$mail_object = &Mail::factory('smtp', $params);
if (PEAR::isError($e = $mail_object->send($recipients, $headers, $body))) {
die($e->getMessage() . "/n");
}
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=468996