用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、上面都没问题,但还是不行的话大家可以问我~~
duan 2015/09/02 16:42
我的怎么不行了
duan 2015/09/02 16:46
教教怎么搞
Specs 2015/09/06 10:00
@ 就那么几步,不行的话看看最后写的那几条可能的原因,再不行我也没办法了~
duan 2015/09/07 10:40
我用qq可以,用163不行?
12 2016/03/23 16:21
@ QQ你是怎么弄的呢
Hello 2017/09/27 14:37
@ 请假下 你QQ是怎么实现的呢?邮箱发送 麻烦了
疑问 2016/05/30 11:11
就这个网页表单提交到指定邮箱该怎么实现
Specs 2016/05/31 08:14
@ 你填哪个邮箱就提交到哪个了
Cipher 2016/10/21 17:26
提示:“邮件发送失败,请联系管理员”
Specs 2016/10/26 22:34
@ 配置不正确吧
你好 2016/10/28 18:50
一直发送失败
Specs 2016/10/30 21:22
@ 配置有问题吧。反正思路差不多是这样的。不知道他们的系统是不是有升级,很久没用那个了
Vicky 2017/02/13 10:36
如果可能是服务器不支持邮件发送,那要怎么才能支持呢?服务器是自己的。在网上查了好多方法,都没有解决掉这个问题。本地就能发出邮件,传到服务器上就发不出了。
Specs 2017/02/16 09:58
@ 需要开启邮件服务吧
Hello 2017/09/27 14:36
您好 我liunx 和wdcp 都检查打开了 25端口的 然后我用的 163邮箱 我QQ也测试了 但还是没有接收到邮件 我也是按照这个步骤来的 麻烦大神指点一下 QQ:1043221946
不要聊 2017/10/17 17:29
您最后那个邮箱样式是怎么出来的哦
Specs 2017/10/23 22:25
@ 邮箱是 163 的。。
小白 2017/10/18 17:41
请问下本机显示发布成功,没收到邮件是怎么回事?
Specs 2017/10/23 22:25
@ 是不是进了垃圾邮件那里