POST TIME:2017-11-13 00:54
用DEDECMS(織夢(mèng))做開發(fā)的時(shí),有些客戶可能要求自定義表單提交后向指定郵箱發(fā)送郵件通知這樣的功能。我搜索了一下,網(wǎng)上的代碼基本都是一樣的,就是使用 PHPMailer 來(lái)實(shí)現(xiàn)。但其實(shí)DEDE本身就已經(jīng)帶有了郵件功能,為什么我們還要借助 PHPMailer 來(lái)實(shí)現(xiàn)呢?今天就來(lái)給大家分享下如何使用DEDE自帶郵件功能為自定義表單添加郵件通知功能。
其實(shí)前面已經(jīng)分享過(guò)一篇《使用DEDE織夢(mèng)自帶的郵件功能發(fā)送郵件》的文章,這篇文章可以說(shuō)是前一篇的增強(qiáng)版,所以我們這里只寫一下實(shí)現(xiàn)方法,更多內(nèi)容請(qǐng)查看前一篇文章。
首先打開 /plus/diy.php
,把下面的代碼(在 /dede/mail_send.php
中可以找到)
//郵件發(fā)送函數(shù) function sendmail($email, $mailtitle, $mailbody) { global $cfg_sendmail_bysmtp, $cfg_smtp_server, $cfg_smtp_port, $cfg_smtp_usermail, $cfg_smtp_user, $cfg_smtp_password, $cfg_adminemail,$cfg_webname; if($cfg_sendmail_bysmtp == 'Y' && !empty($cfg_smtp_server)) { $mailtype = 'HTML'; require_once(DEDEINC.'/mail.class.php'); $smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password); $smtp->debug = false; if(!$smtp->smtp_sockopen($cfg_smtp_server)){ ShowMsg('郵件發(fā)送失敗,請(qǐng)聯(lián)系管理員','-1'); exit(); } $smtp->sendmail($email,$cfg_webname,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype); }else{ @mail($email, $mailtitle, $mailbody, $headers); } }
放到
require_once(dirname(__FILE__)."/../include/common.inc.php");
的下面。
然后把
$email = "****"; //這里填寫要發(fā)送到的郵箱 $mailtitle = "郵件標(biāo)題"; $mailbody = "郵件內(nèi)容"; sendmail($email, $mailtitle, $mailbody);
放到
$id = $dsql->GetLastID();
的上面,保存文件。
登錄后臺(tái)配置好郵件發(fā)送服務(wù)(方法見 這里),然后測(cè)試下是不是已經(jīng)可以了~
效果如下:
最近添加了一個(gè)新的方法《使用DEDE織夢(mèng)自帶的郵件功能實(shí)現(xiàn)自定義表單郵件通知(方法二)》,大家也可以參考一下。
友情提示:有些朋友反應(yīng)按這篇文章做了,但是還是收不到郵件提示,可能是以下幾種原因,請(qǐng)認(rèn)真檢查下
1、后臺(tái)沒(méi)有配置SMTP服務(wù),配置方法看這篇文章的后面;
2、其次可能是配置不對(duì),建議大家別用QQ郵箱,因?yàn)楹芏郠Q郵箱確實(shí)收不到郵件,不清楚什么原因;推薦使用 163或126郵箱,這個(gè)一般都沒(méi)問(wèn)題;SMTP服務(wù)器為smtp.126.com或smtp.163.com,端口是 25,QQ的端口好像是465。
3、如果以上都沒(méi)問(wèn)題,也可能是你的空間或服務(wù)器不支持郵件發(fā)送功能,請(qǐng)?jiān)儐?wèn)服務(wù)商。
4、上面都沒(méi)問(wèn)題,但還是不行的話大家可以問(wèn)我~~