我的機子上沒有安裝郵件伺服器,無法用內建的mail()函數發送郵件,空間所在虛擬機器主機上也沒有,socket和PHPMailer也不支援,但是Jmail這個組件卻有,於是便參考網路和文檔,測試通過下面一段郵件發送代碼: 程式碼<?php
$jmail=new COM("JMail.Message")or die("無法調用Jmail組件");
//屏蔽例外錯誤,靜默處理
$jmail->silent=true;
//編碼必須設定,否則中文會亂碼
$jmail->charset="gb2312";
//發信人郵件地址和名稱,能自訂,可以和郵件發送帳號不同
$jmail->From="admin@domain.com";
$jmail->FromName="webmaster";
//添加多個郵件接受者
$jmail->AddRecipient("xxxx@yeah.net");
$jmail->AddRecipient("xxxx@gmail.com");
$jmail->AddRecipient("xxx@qq.com");
//郵件主題和本文資訊
$jmail->Subject="PHP+Jmail測試發送郵件";
$jmail->Body="PHP+Jmail測試發送郵件內文文本";
//發信郵件帳號和密碼
$jmail->MailServerUserName="xxxx@sogou.com";
$jmail->MailServerPassword="123456";
try{
//發送的時候附帶SMTP發信伺服器位址
$retval=$jmail->Send("smtp.mail.sogou.com");
if($retval)
echo "發送成功";
else
echo "發送失敗";
}catch(Exception $e){
echo $e->GetMessage();
}
?>
發信帳號必須有smtp發信許可權,對於網易的郵箱,06年後註冊的新郵箱好像不行,早期的倒可以。
還有,最好設定$jmail->silent=true,不讓jmail自行拋出錯誤資訊,在設定正常的時候,頻繁發信會出現一些錯誤,據我估計應該是發信伺服器設定了發信時間間隔。
經測試,我所用的發信郵箱帳號sogou郵箱,能夠正常向網易、QQ、GMail郵箱發送郵件資訊。