织梦dedecms实现系统评论邮件通知的方法:
一、实现方法
第一步:打开默认ajax评论文件 /plus/feedback_ajax.php ,找到如下代码:
$_SESSION['sedtime'] = time();
在下面一行加入如下代码:
$doType = emptyempty($fid) ? 'feedback' : 'reply';
doCommentEmail($fid, $aid, $msg, $doType);
第二步:打开 /include/extend.func.php 文件,在最后一行或者?>之前加入如下代码:
function doCommentEmail($fid=0, $aid=0, $msg='', $doType='reply'){
global $dsql, $cfg_adminemail, $cfg_sendmail_bysmtp, $cfg_smtp_server, $cfg_smtp_port, $cfg_smtp_usermail, $cfg_smtp_password, $cfg_webname, $cfg_basehost;
$arcRow = GetOneArchive($aid);
$headers = "From: ".$cfg_adminemail."\r\nReply-To: ".$cfg_adminemail;
if($doType == 'reply'){
$query = "SELECT f.*,m.uname,m.email FROM dede_feedback f LEFT JOIN dede_member m on f.mid = m.mid WHERE f.id = '{$fid}' AND mid > 0";
$row = $dsql->GetOne($query);
if(!is_array($row)) return '';
$email = $row['email'];
$mailtitle = "您在『{$cfg_webname}』的评论已被回复";
$mailbody = "{$row['uname']},您好:\r\n您在{$cfg_webname}的评论已被人回复!<pre>{$msg}</pre><br/><a href='{$arcRow['arcurl']}'>点击这里查看详情</a>";
}else{
$email = $cfg_adminemail;
$mailtitle = "您的网站『{$cfg_webname}』有新的评论";
$mailbody = "网站管理员,您好:<br/>\r\n您的网站《{$cfg_webname}》有新的评论!<pre>{$msg}</pre><br/><a href='{$cfg_basehost}'>点击这里查看详情</a>";
}
if($email == '') return '';
if($cfg_sendmail_bysmtp == 'Y' && !emptyempty($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;
$smtp->sendmail($email,$cfg_webname ,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);
}
else
{
@mail($email, $mailtitle, $mailbody, $headers);
}}
第三步:配置后台邮件发送信息,进入网站后台,切换到『系统』选项卡,点击「系统基本参数」的“核心设置”,将里面的“网站发信EMAIL”、“是否启用smtp方式发送邮件”、“smtp服务器”、“smtp服务器端口”、“SMTP服务器的用户邮箱”、“SMTP服务器的用户帐号”和“SMTP服务器的用户密码”配置好即可。
二、注意事项
1.您的服务器必须支持邮件发送;
2.您必须配置好系统设置里的邮件发送账户信息;
3.理论上本教程支持DedeV5.3及以上所有版本。
(责任编辑:好模板) |