1. 程式人生 > >使用DEDECMS織夢自帶的郵件功能實現自定義表單郵件通知

使用DEDECMS織夢自帶的郵件功能實現自定義表單郵件通知

用DEDECMS(織夢)做開發的時,有些客戶可能要求自定義表單提交後向指定郵箱傳送郵件通知這樣的功能。我搜索了一下,網上的程式碼基本都是一樣的,就是使用 PHPMailer 來實現。但其實DEDE本身就已經帶有了郵件功能,為什麼我們還要藉助 PHPMailer 來實現呢?今天就來給大家分享下如何使用DEDE自帶郵件功能為自定義表單新增郵件通知功能。

其實前面已經分享過一篇《使用DEDE織夢自帶的郵件功能傳送郵件》的文章,這篇文章可以說是前一篇的增強版,所以我們這裡只寫一下實現方法,更多內容請檢視前一篇文章。

首先開啟 /plus/diy.php ,把下面的程式碼(在 /dede/mail_send.php

中可以找到)

  1. //郵件傳送函式
  2. function sendmail($email, $mailtitle, $mailbody)
  3. {
  4. global $cfg_sendmail_bysmtp, $cfg_smtp_server, $cfg_smtp_port, $cfg_smtp_usermail, $cfg_smtp_user, $cfg_smtp_password, $cfg_adminemail,$cfg_webname;
  5. if($cfg_sendmail_bysmtp =='Y'&&!empty($cfg_smtp_server))
  6. {
  7. $mailtype ='HTML';
  8. require_once
    (DEDEINC.'/mail.class.php');
  9. $smtp =new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password);
  10. $smtp->debug =false;
  11. if(!$smtp->smtp_sockopen($cfg_smtp_server)){
  12. ShowMsg('郵件傳送失敗,請聯絡管理員','-1');
  13. exit();
  14. }
  15. $smtp->sendmail($email,$cfg_webname,$cfg_smtp_usermail, $mailtitle
    , $mailbody, $mailtype);
  16. }else{
  17. @mail($email, $mailtitle, $mailbody, $headers);
  18. }
  19. }

放到

  1. require_once(dirname(__FILE__)."/../include/common.inc.php");

的下面。

然後把

  1. $email ="****";//這裡填寫要傳送到的郵箱
  2. $mailtitle ="郵件標題";
  3. $mailbody ="郵件內容";
  4. sendmail($email, $mailtitle, $mailbody);

放到

  1. $id = $dsql->GetLastID();

的上面,儲存檔案。

登入後臺配置好郵件傳送服務(方法見 這裡),然後測試下是不是已經可以了~

效果如下:

DEDE郵件傳送服務

友情提示:有些朋友反應按這篇文章做了,但是還是收不到郵件提示,可能是以下幾種原因,請認真檢查下

1、後臺沒有配置SMTP服務,配置方法看這篇文章的後面;

2、其次可能是配置不對,建議大家別用QQ郵箱,因為很多QQ郵箱確實收不到郵件,不清楚什麼原因;推薦使用 163或126郵箱,這個一般都沒問題;SMTP伺服器為 smtp.126.com或smtp.163.com,埠是 25,QQ的埠好像是465。

3、如果以上都沒問題,也可能是你的空間或伺服器不支援郵件傳送功能,請詢問服務商。

4、上面都沒問題,但還是不行的話大家可以問我~~

轉:http://9iphp.com/opensystem/dede/884.html