DedeCMS自帶的mail郵箱功能不僅可以使用在會員注冊驗證上,還能用在在自定義表單提交,站內通知提醒(短消息)等,其實這些功能都是mail功能的擴展開發(fā)。
下面分享短消息與指定郵箱功能開發(fā),其他需要用到地方直接參考就行了。
1.網站后臺設置郵箱相關信息
后臺:系統(tǒng)>系統(tǒng)基本參數>核心設置,看到以下表單,按郵箱設置,注意網站發(fā)信emall和下面的smtp服務器都要相同。

dede表單提交后臺設置
2.指定的郵箱設置
每個郵箱都對應的POP3/SMTP/IMAP設置,參考相關說明即可,這里需要注意的是新的163或者QQ郵箱都有獨立密碼或者授權碼,為了安全需要,還是需要設置好授權碼或獨立密碼,這個密碼就是SMTP服務器的用戶密碼,不是郵箱的密碼。
3.自定義表單提交后管理員后臺收到短信息并發(fā)送到指定郵箱
4.會員提交文章審核,向對應的會員發(fā)送消息
①提取發(fā)表者ID,也就是會員中心的mid。
打開/dede/archives_do.php,表前綴找到
$query = "SELECT arc.id,arc.typeid,ch.issystem,ch.maintable,ch.addtable FROM `dede_arctiny` arc
LEFT JOIN `dede_arctype` tp ON tp.id=arc.typeid
LEFT JOIN `dede_channeltype` ch ON ch.id=tp.channeltype
WHERE arc.id in($arcids) ";
修改為
$query = "SELECT arc.id,arc.mid,arc.typeid,ch.issystem,ch.maintable,ch.addtable FROM `dede_arctiny` arc
LEFT JOIN `dede_arctype` tp ON tp.id=arc.typeid
LEFT JOIN `dede_channeltype` ch ON ch.id=tp.channeltype
WHERE arc.id in($arcids) ";
②獲取發(fā)布短消息時間,找到
$dsql->Execute('ckall');
在下面添加
$dtime = time();
③提取用戶ID,并把所有信息寫入短消息,發(fā)送一條短信息給對應的發(fā)布者,找到
$dsql->ExecuteNoneQuery("Update `dede_member` set scores=scores+{$cfg_sendarc_scores} where mid='".$cfg_ml->M_ID."' ; ");
下面添加
$mid = $row['mid'];
$dsql->ExecuteNoneQuery("INSERT INTO `dede_member_pms` (`floginid`,`fromid`,`toid`,`folder`,`subject`,`sendtime`,`writetime`,`hasview`,`isadmin`,`message`)
VALUES ('admin','1','$mid','inbox','www.CUOxin.com文檔審核消息!','$dtime','$dtime','0','0','您的文章已經經過了本站的審核!')");
④向指定郵箱發(fā)送消息
在上面代碼下添加下面的通用代碼: require_once(DEDEINC.'/mail.class.php'); $mailtitle = $mid . "提交了文檔審核"; //郵件標題 $mailbody = "稱呼:{$mid}提交了文檔審核,請登錄"; //郵件正文,根據實際需求調用對應的字段 $headers = $cfg_adminemail; $mailtype = 'TXT'; $smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password); $smtp->debug = false; $smtp->sendmail($cfg_smtp_usermail,$cfg_webname ,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype); |



















