DedeCMS自帶的mail郵箱功能不僅可以使用在會員注冊驗證上,還能用在在自定義表單提交,站內通知提醒(短消息)等,其實這些功能都是mail功能的擴展開發。
下面分享短消息與指定郵箱功能開發,其他需要用到地方直接參考就行了。
后臺:系統>系統基本參數>核心設置,看到以下表單,按郵箱設置,注意網站發信emall和下面的smtp服務器都要相同。
每個郵箱都對應的POP3/SMTP/IMAP設置,參考相關說明即可,這里需要注意的是新的163或者QQ郵箱都有獨立密碼或者授權碼,為了安全需要,還是需要設置好授權碼或獨立密碼,這個密碼就是SMTP服務器的用戶密碼,不是郵箱的密碼。
前面寫過對應的文章《最全實現dede訂單表單提交發送到指定郵箱(附前臺設置)》,這里不累述了。
①提取發表者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) "; |
②獲取發布短消息時間,找到
$dsql->Execute('ckall'); |
在下面添加
$dtime = time(); |
③提取用戶ID,并把所有信息寫入短消息,發送一條短信息給對應的發布者,找到
$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','您的文章已經經過了本站的審核!')"); |
④向指定郵箱發送消息
在上面代碼下添加下面的通用代碼:
$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); |
新聞熱點
疑難解答