用PHP發電子郵件2
來源:互聯網
上載者:User
mail()函數是非常簡單的:只有五個參數,而其中的兩個是可選的.這些參數是:
接收方地址
主題
信件內容
其它檔案資訊頭(可選)
SMTP服務程式的其它配置選項(可選)
附加的頭參數控制了諸如CC, BCC, Reply-To之類的郵件功能,或者其它遵循SMTP協議的功能.在這個例子中,我只使用From 和 Reply-To資訊頭.
如果你想給我發郵件但你使用的是一個非Windows系統, 程式碼就應該如下:
<?
$to = "julie@thickbook.com";
$subject = "ZDNet Developer article";
$msg = "I completely understand SMTP servers now!";
$headers = "From: me@mycompany.comReply-To: someoneelse@mycompany.com";
$config = "-fwebmaster@mycompany.com";
mail("$to", "$subject", "$msg", "$headers", "$config");
echo "finished!";
?>
如果你使用的是一個基於Windows的SMTP服務,那麼你有可能不需要使用第五個參數,而且在附加的頭資訊參數中(也就是第四個參數),你需要將它們分開寫--使用而不是.所以,同樣的一個郵件通過基於Windows的SMTP服務發送的代碼如下:
<?
$to = "julie@thickbook.com";
$subject = "ZDNet Developer article";
$msg = "I completely understand SMTP servers now!";
$headers = "From: me@mycompany.comReply-To: someoneelse@mycompany.com";
mail("$to", "$subject", "$msg", "$headers");
echo "finished!";
?>
指令碼中的echo語句使你的Web瀏覽器在指令碼運行完成的時候向你顯示一條資訊.如果不寫echo語句,你就會得到一個"空檔案"的對話方塊,因為沒有任何輸出能夠發送到瀏覽器端.
只要能夠串連到指定的SMTP伺服器mail()函數就會返回真值.但是這並不意味著郵件成功的到達了接收方那裡.mail()函數不會等待或報告SMTP伺服器發來的成功/錯誤碼.
mail()函數有可能返回假值,然後給你警告"無法串連,在第x行"或是"未知的錯誤,在第x行."如果這兩條資訊中的任何一條出現了,你就應該檢查php.ini中的SMTP值.引起這些訊息有兩種可能:SMTP伺服器癱瘓了,或者PHP無法串連到它.無論是這兩種情況中的哪一種,你的郵件都無法被發送出去.