帝國cms使用qq郵箱的pop3/stmp服務,任何等級的qq賬號都可用。
1、安裝php的openssl的extension,并且在php.ini中開啟此extension。(如圖1所示)
2、開通qq郵箱的POP3/SMTP服務,并且獲取重要的“授權碼”。此授權碼是作為密碼登錄郵箱的。(如圖2所示)
3、按下圖填寫帝國cms的SMTP模塊設置,其中SMTP的端口請填寫"465"。“郵箱登陸密碼”請填入第二步的“授權碼”。(如圖3所示)
4、修改eclassclass.smtp.php,在大約第62行(帝國cms7.2版本)的$host前添加"ssl://",請不要忽略"ssl://".$host之前的點號。(如圖4所示)
5、在e文件夾下新建一個send_mail.php文件,輸入以下代碼(記得修改下面中郵件接收者的E-mail):(如圖5所示)
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php require ( 'class/connect.php' ); require ( 'class/db_sql.php' ); $link =db_connect(); $empire = new mysqlquery(); echo "send start <br />" ; include ( 'class/SendEmail.inc.php' ); $mail_test = "xxx@qq.com" ; //郵件接收者的E-mail $sm =EcmsToSendMail( $mail_test , "郵件測試" , "testtesttesttesttest" ); //郵件接收者的E-mail, 郵件標題, 郵件正文 echo $mail_test . " send over <br />" ; db_close(); $empire =null; ?> |
6、在瀏覽器中輸入"[網站地址]/e/send_mail.php"測試。(本地localhost也可用)
7、測試完成后刪除esend_mail.php文件。
原創]新訂單、新反饋信息、新投稿 各種場景 各種給管理員發通知郵件
帝國不知道從什么時候就引入了一個發送郵件類,還可以在后臺設置管理員郵箱,和發送郵件的相關參數,但是準備了這么多材料,實際上系統用到的機會不多,大約只在會員注冊驗證、會員重置密碼,和管理員向會員發送消息時用到了郵件功能。實際上帝國這么多功能,在很多關鍵位置如果能增加一個給管理員發送通知郵件的功能,那會使管理員帶來很大的方便,起碼不用一直掛著后臺了。由于帝國已經支持發送郵件了,所以這些功能實現起來很簡單,有需要的同學可以參考一下。
一、設置管理員郵件地址和發郵參數
后臺,系統設置,系統參數設置
基本屬性標簽:管理員郵箱。以后的通知郵件都會發到這一郵箱
FTP/EMAIL標簽:如果主機支持mail函數,則個人感覺用這個效率可能高一點,主機不支持的話也沒關系,還可以用SMTP,設置方法跟郵件客戶端一樣。
需要說明的是,如果想用gmail的帳號發送實現起來比較麻煩,gmail的smtp需要ssl,且不說帝國自帶的郵件發送類不支持ssl,就是帝國后臺設置郵件的地方也沒有提供ssl選項,所以就不折騰了,用國內的郵箱帳號發就是了。
二、新增給管理員發郵件的函數
找到eclassSendEmail.inc.php,結尾下加入以下代碼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | //給管理員信箱發送通知郵件新增函數 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 .= "rnrn此郵件由系統自動發出,請管理員盡快處理nr" ; $sm =EcmsToSendMail( $pr [ 'email' ], $subject , $msgtext ); return $sm ; } |
三、給管理員發郵件,以下是不同的場景,可以根據需要自由修改
1.有新訂單時
修改eenewsindex.php,在大約184行
AddDd($_POST);
在這一行前面加上
1 2 | @ include ( "../class/SendEmail.inc.php" ); SendNoticeToAdmin( "有新訂單!訂單號" . $_POST [ddno], $_POST ); |
完活,這只是起到一個提醒功能,所以郵件界面什么的就不用考慮了,管理員收到郵件后去帝國后臺處理就是了。
2.有新的投稿時
修改eclassqinfofun.php,在大約850行
printerror("AddQinfoSuccess",$reurl,1);
在這一行前面加上
1 2 | @ include ( 'SendEmail.inc.php' ); SendNoticeToAdmin( "收到來自" . $add [ 'title' ]. "的投稿" , $add ); |
3.有新的信息反饋時
修改eclassq_functions.php,在大約468行
$reurl=DoingReturnUrl("../tool/feedback/?bid=$bid",$add['ecmsfrom']);
在這一行前面加上:
1 2 | @ include ( "SendEmail.inc.php" ); SendNoticeToAdmin( "收到來自" . $add [ 'title' ]. "的信息反饋" , $add ); |
4.有新留言時
修改eenewsindex.php,在大約215行
AddGbook($_POST);
在這一行前面加上:
1 2 | @ include ( "../class/SendEmail.inc.php" ); SendNoticeToAdmin( "收到新留言" , $_POST ); |
5.有會員在網站上注冊(如果是注冊需要審核,收到這封郵件管理員可以及時去后臺審核)
修改eenewsindex.php,在大約74行
register($username,$password,$repassword,$email);
在這一行前面加上
1 2 | @ include ( '../class/SendEmail.inc.php' ); SendNoticeToAdmin( "新會員注冊,用戶名:" . $username , $_POST ); |
6.網站后臺啟用注冊需要郵箱驗證,驗證通過后會員會收到一封歡迎信
由于這個郵件是給會員看的,所以內容格式排版上就要講究一下了
(1)在eclass下新增一條文件,命名user_template_register.txt,內容如下(僅供參考,可自行修改)
歡迎[!--USERNAME--]注冊本網站。
(2)修改eclassqmemberfun.php,在大約188行
printerror('ActUserSuccess',$public_r['newsurl'],1);
在這一行前面加上
1 2 3 4 | @ include ( 'SendEmail.inc.php' ); $msgtext = file_get_contents ( "user_template_register.txt" ); $msgtext = str_replace ( '[!--USERNAME--]' , $r [username], $msgtext ); EcmsToSendMail( $r [username], "歡迎注冊" , $msgtext ); |
此久,還有一些場景也需要用到郵件,比如
1)網站沒有啟用郵箱驗證,但是會員注冊后需要管理員手工審核,審核通過后會員會收到一封歡迎信
2)商城系統,會員下單后會實時收到郵件通知,訂單通過審核后,也會再給客戶一封郵件
實現起來都不難,有需要的自己加上就是了
上傳以下圖片:
新聞熱點
疑難解答