帝國不知道從什麼時候就引入了一個發送郵件類,還可以在後台設置管理員郵箱,和發送郵件的相關參數,但是准備了這麼多材料,實際上系統用到的機會不多,大約只在會員注冊驗證、會員重置密碼,和管理員向會員發送消息時用到了郵件功能。實際上帝國這麼多功能,在很多關鍵位置如果能增加一個給管理員發送通知郵件的功能,那會使管理員帶來很大的方便,起碼不用一直掛著後台了。由於帝國已經支持發送郵件了,所以這些功能實現起來很簡單,有需要的同學可以參考一下。
一、設置管理員郵件地址和發郵參數
後台,系統設置,系統參數設置
基本屬性標簽:管理員郵箱。以後的通知郵件都會發到這一郵箱
FTP/EMAIL標簽:如果主機支持mail函數,則個人感覺用這個效率可能高一點,主機不支持的話也沒關系,還可以用SMTP,設置方法跟郵件客戶端一樣。
需要說明的是,如果想用gmail的帳號發送實現起來比較麻煩,gmail的smtp需要ssl,且不說帝國自帶的郵件發送類不支持ssl,就是帝國後台設置郵件的地方也沒有提供ssl選項,所以就不折騰了,用國內的郵箱帳號發就是了。
二、新增給管理員發郵件的函數
找到e\class\SendEmail.inc.php,結尾下加入以下代碼
//給管理員信箱發送通知郵件新增函數
function SendNoticeToAdmin($subject,$body){
global $empire,$dbtbpre;
$empire=new mysqlquery();
$pr=$empire->fetch1("select email from {$dbtbpre}enewspublic limit 1");
if(is_array($body)){
foreach($body as $value){
$key=key($body);
next($body);
$msgtext .= "$key:"."$value"."\n";
}
}else{
$msgtext=$body;
}
$msgtext .= "\r\n\r\n此郵件由系統自動發出,請管理員盡快處理\n\r";
$sm=EcmsToSendMail($pr['email'],$subject,$msgtext);
return $sm;
}
三、給管理員發郵件,以下是不同的場景,可以根據需要自由修改
1.有新訂單時
修改e\enews\index.php,在大約184行
AddDd($_POST);
在這一行前面加上
@include("../class/SendEmail.inc.php");
SendNoticeToAdmin("有新訂單!訂單號".$_POST[ddno],$_POST);
完活,這只是起到一個提醒功能,所以郵件界面什麼的就不用考慮了,管理員收到郵件後去帝國後台處理就是了。
2.有新的投稿時
修改e\class\qinfofun.php,在大約850行
printerror("AddQinfoSuccess",$reurl,1);
在這一行前面加上
@include('SendEmail.inc.php');
SendNoticeToAdmin("收到來自".$add['title']."的投稿",$add);
3.有新的信息反饋時
修改e\class\q_functions.php,在大約468行
$reurl=DoingReturnUrl("../tool/feedback/?bid=$bid",$add['ecmsfrom']);