织梦cms自定义表单配置邮件提醒(发送)功能

织梦cms自带的自定义表单其实是一个很不错的功能,通过自定义表单,我们可以获取到客户的留言信息甚至是联系方式,但缺点就在于没有提醒功能,想要查收留言只能通过登录后台。为及时查收用户留言信息,那么配置一个右键提醒功能就显得很有必要了。

本文白天将详细给大家介绍一下为织梦cms自定义表单配置邮件提醒的方法,将用户的留言信息及时发送至我们的邮箱,以便于查收。

注:本文以配置qq邮箱为例,其他邮箱配置方法一致,国内主流邮箱都支持,如qq邮箱、163邮箱等。

1、环境要求

  • 服务器安全组开启和放行465端口;
  • php扩展开启openssl、sockets;
  • 虚拟主机必须开启fsockopen函数;

如下图,本地环境phpstudy开启这2个扩展

织梦cms自定义表单配置邮件提醒(发送)功能

阿里云虚拟主机开启fsockopen函数:

织梦cms自定义表单配置邮件提醒(发送)功能

2、qq邮箱开启SMTP服务并获取授权码

如下图所示,登录qq邮箱后台 > 设置 > 账户 > 开启POP3/SMTP以及IMAP/SMTP服务,开启后点击下方提示信息中的“生成授权码”,生成后保存授权码到本地备用。

织梦cms自定义表单配置邮件提醒(发送)功能

3、网站后台设置邮件发送相关信息

登录网站后台,在系统 > 系统基本参数 > 核心设置中,配置以下信息:

  • 是否启用SMTP方式发送邮件:是
  • SMTP服务器:ssl://smtp.163.com 或者 ssl://smtp.qq.com
  • SMTP服务器端口:465
  • SMTP服务器的用户邮箱:dedehtml@163.com 或者 858265175@qq.com
  • SMTP服务器的用户帐号:dedehtml 或者 858265175
  • SMTP服务器的用户密码:填你邮箱授权码,不是邮箱登录密码

如下图所示:

织梦cms自定义表单配置邮件提醒(发送)功能

4、网站后台 – 系统 – 系统基本参数 – 添加新变量

5、 在/plus/diy.php找到:

$id = $dsql->GetLastID();

在其下方加入代码:

$mailtitle = "{$diy->name}--留言通知";
$mailbody = '';
foreach($diy->getFieldList() as $field=>$fieldvalue)
{
	$mailbody .= "{$fieldvalue[0]}:{${$field}}\r\n";
}
$headers = "From: ".$cfg_adminemail."Reply-To: ".$cfg_adminemail;
if($cfg_sendmail_bysmtp == 'Y' && !empty($cfg_smtp_server))
{
	$mailtype = 'TXT';
	require_once(DEDEINC.'/mail.class.php');
	$smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password);
	$smtp->debug = 0;//发送不成功把0改成1,再提交看错误信息
	$smtp->sendmail($cfg_shoujianren,$cfg_webname ,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);
}
else
{
	@mail($cfg_shoujianren, $mailtitle, $mailbody, $headers);
}

至此自定义表单发送邮件的功能就完成了。

如果提交表单后收不到邮件,把上面代码$smtp->debug = 0;改成$smtp->debug = 1;

然后再重新提交表单,看提示信息提示什么。

注:

1、如果用ssl:// 和 465端口发送失败,提示 Trying to ssl://smtp.xx.com 话,很大可能是服务器安全组规则未开启465端口或者防火墙未放行465端口。

2、如果收到的提醒短信乱码,可以在打开 /plus/diy.php中找到:

$headers = "From: ".$cfg_adminemail."Reply-To: ".$cfg_adminemail;

在它的下方加入:

$mailbody = mb_convert_encoding($mailbody, "GBK", "UTF-8");

即可

文章最后一次修改于

原创文章,作者:白天,如若转载请注明出处:织梦cms自定义表单配置邮件提醒(发送)功能

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

评论列表(1条)

微信内浏览本博