[PHP PEAR]mail 功能
如果要使用PHP 來發送信件, PEAR 中的 Mail 模組是一個不錯的選擇
首先要 Include PEAR mail
require_once("/usr/share/pear/Mail.php"); //看你安裝 PEAR 的實際位置
$smtp = Mail::factory('smtp', array('host' => 'mailserver.domain.com', 'port' => '25', 'auth' => true, 'username' => 'yourname', 'password' =>'yourpassword')); // 產生 mail instance
$mail = $smtp->send($receivers, $headers, $content); // 送出信件
其中, create mail instance 時, 有三個主要參數可以選擇送信的方法
1. mail: 將寄信的工作交給 PHP 內建的 mail function 來送信
2. sendmail: 將寄信的工作交給本機的 sendmail 程式, 有兩個可設定的參數
$params["sendmail_path"]: 設定本機 sendmail 的實際路徑
$params["sendmail_args"]: 要傳給 sendmail 的參數
3. smtp: 將寄信的工作交給實際能送信的郵件伺服器, 此參數有很多子參數可設定, 介紹幾個常用的
$params["host"]: 設定實際能幫你送信的主機
$params["port"]: 設定傳送信件的通訊埠, 通常是 25
$params["auth"]: 現在非常多郵件伺服器, 不幫忙送信, 因為垃圾郵件太猖獗, 因此很多郵件伺服器是要認證, 才可幫忙送信, 如果你的郵件伺服器要認證, 此參數要設 true
$params["username"]: 如果 $params["auth"] 是 true, 那此參數和下一個參數分別要給定帳號及密碼
$params["password"]: 設定認證的密碼
如果以上的送信方法設定了, 接下來就是要傳送信件了
$smtp->send($receivers, $headers, $content);
send function 有三個參數
第一個參數設定收件者(一個或多個, 中間以 "," 分隔收件者)
第二個參數信件表頭, 表頭的參數非常多, 主要是 RFC-2822 定義的信件表頭, 以下介紹幾個常用的
$headers["From"]: 定義送件者
$headers["To"]: 定義收件者
$headers["Cc"]: 定義副本收件者 CC(Carbon Copy)
$headers["Bcc"]: 定義密件收件者 BCC(Blind Carbon Copy)
$headers["Subject"]: 定義信件標題
$headers["Reply-To"]: 定義回信收件人地址(可和From 不同)
$headers["Content-Type"]: 定義郵件本文格式 "text/html; charset=big5" 定義此郵件為 html 格式, 中文字以 Big5 編碼
這裡要特別強調一點 To, Cc, Bcc 這三個都只是讓你的 mail 裡, 收件者, 副本及密件副本欄位依照你指定的顯示, 實際上你的 Mail 送給哪些人是根據第一個參數所給的地址, 這個在我寫程式時沒搞清楚, 以為放在 Cc 和 Bcc 中的程式也會幫我送, 一直以為程式有錯, 後來 google 才知道真正原因
第三個參數是你郵件的本文, 記得要跟 header 中 Content-Type 相符合, 才不會是亂碼
