首页 » 开源/框架 » DEDE » 正文

使用DEDECMS织梦自带的邮件功能实现自定义表单邮件通知(方法二)

前面我已经分享过一篇 《使用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(); 语句上面,然后保存即可。

登录后台配置好邮件发送服务(方法见 这里),然后测试下是不是已经可以了~

填写自定义表单,然后点击“提交”,到邮箱看看是否收到类似下面的邮件了呢?

dede_email_2

如果没有的话,请到 这篇文章 的最下面找找相应原因。

有些朋友可能会问,我想把表单中的一些内容也发送到邮箱中,这里应该怎么写呢?其实很简单,只需要修改下 $mailbody 即可。

怎么传值?直接 $ 符号加你表单中字段的名字即可。比如表单中一个 <input name="title" />的字段,我想把 title 的值放到 $mailbody 中,只需要在你需要显示的位置写上 $title 即可获取 title 的值了。如: $mailbody = "表单中title的值为".$title;

本文共 22 个回复

  • 极品菜鸟 2015/08/17 17:16

    :cry: 您的两种方法都试过了,方法一提示: 邮件发送失败.方法二: 发布成功但是收不到邮件.问过主机的提供商 有邮件发送功能的(支持phpmailer组件).linux系统,香港主机.求帮忙.

  • 吴先生 2017/11/06 14:04

    按照修改后显示发布成功,但是收不到邮件,我用的是QQ免费企业邮箱。

12

发表评论