POST TIME:2017-11-13 00:54
用DEDECMS(織夢)做開發的時,有些客戶可能要求自定義表單提交后向指定郵箱發送郵件通知這樣的功能。我搜索了一下,網上的代碼基本都是一樣的,就是使用 PHPMailer 來實現。但其實DEDE本身就已經帶有了郵件功能,為什么我們還要借助 PHPMailer 來實現呢?今天就來給大家分享下如何使用DEDE自帶郵件功能為自定義表單添加郵件通知功能。
其實前面已經分享過一篇《使用DEDE織夢自帶的郵件功能發送郵件》的文章,這篇文章可以說是前一篇的增強版,所以我們這里只寫一下實現方法,更多內容請查看前一篇文章。
首先打開 /plus/diy.php
,把下面的代碼(在 /dede/mail_send.php
中可以找到)
//郵件發送函數 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('郵件發送失敗,請聯系管理員','-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 = "****"; //這里填寫要發送到的郵箱 $mailtitle = "郵件標題"; $mailbody = "郵件內容"; sendmail($email, $mailtitle, $mailbody);
放到
$id = $dsql->GetLastID();
的上面,保存文件。
登錄后臺配置好郵件發送服務(方法見 這里),然后測試下是不是已經可以了~
效果如下:
最近添加了一個新的方法《使用DEDE織夢自帶的郵件功能實現自定義表單郵件通知(方法二)》,大家也可以參考一下。
友情提示:有些朋友反應按這篇文章做了,但是還是收不到郵件提示,可能是以下幾種原因,請認真檢查下
1、后臺沒有配置SMTP服務,配置方法看這篇文章的后面;
2、其次可能是配置不對,建議大家別用QQ郵箱,因為很多QQ郵箱確實收不到郵件,不清楚什么原因;推薦使用 163或126郵箱,這個一般都沒問題;SMTP服務器為smtp.126.com或smtp.163.com,端口是 25,QQ的端口好像是465。
3、如果以上都沒問題,也可能是你的空間或服務器不支持郵件發送功能,請詢問服務商。
4、上面都沒問題,但還是不行的話大家可以問我~~