一、实现方法
第一步:打开默认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及以上所有版本。