前面我已经分享过一篇 《使用DEDE织梦自带的邮件功能实现自定义表单邮件通知》的文章,这里再介绍另一种方法,其实跟前一篇的原理是一样的~
前一篇我们是直接把发送邮件的函数拷贝到 /plus/diy.php
文件中,这一篇我们通过声明 smtp
类来实现发送邮件通知的功能,下面上代码:
global $cfg_smtp_server, $cfg_adminemail, $cfg_smtp_port, $cfg_smtp_usermail, $cfg_smtp_password, $cfg_webname; $to_email = $cfg_adminemail; //收件人Email,可自行替换 $mailtitle = "测试邮件标题"; //自行设置 $mailbody = "测试邮件内容"; //自行设置 $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; $smtp->sendmail($to_email, $cfg_webname, $cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);
把上面的代码放入到 /plus/diy.php
文件的 $id = $dsql->GetLastID();
语句上面,然后保存即可。
登录后台配置好邮件发送服务(方法见 这里),然后测试下是不是已经可以了~
填写自定义表单,然后点击“提交”,到邮箱看看是否收到类似下面的邮件了呢?
如果没有的话,请到 这篇文章 的最下面找找相应原因。
有些朋友可能会问,我想把表单中的一些内容也发送到邮箱中,这里应该怎么写呢?其实很简单,只需要修改下 $mailbody 即可。
怎么传值?直接
$
符号加你表单中字段的名字即可。比如表单中一个<input name="title" />
的字段,我想把title
的值放到$mailbody
中,只需要在你需要显示的位置写上$title
即可获取title
的值了。如:$mailbody = "表单中title的值为".$title;
极品菜鸟 2015/08/17 17:16
您的两种方法都试过了,方法一提示: 邮件发送失败.方法二: 发布成功但是收不到邮件.问过主机的提供商 有邮件发送功能的(支持phpmailer组件).linux系统,香港主机.求帮忙.
吴先生 2017/11/06 14:04
按照修改后显示发布成功,但是收不到邮件,我用的是QQ免费企业邮箱。
Specs 2017/11/25 09:40
@ 看看回收站