帝国CMS是一款功能强大的内容管理系统,其内置的商城模块同样具备出色的性能。在实际应用中,当用户完成下单并支付后,如何及时获知订单信息是一个关键问题。毕竟,我们无法时刻守在网站后台刷新页面来查看是否有新订单产生。因此,通过邮件提醒功能来通知管理员成为了最常用且高效的解决方案。


那么,如何实现这一功能呢?以下是详细的操作步骤:


第一步:配置帝国CMS后台的邮件发送功能


进入帝国CMS后台,依次点击“系统设置” -> “系统参数设置” -> “FTP/EMAIL”。在这里进行邮箱配置,推荐使用126邮箱作为示例。具体配置如下:


  • 邮件发送模式:选择“SMTP模块发送”
  • SMTP服务器:填写“smtp.126.com”
  • SMTP端口:可以任意填写,例如“25”
  • 发信人地址:输入完整的邮箱地址,如“webmaster@126.com”
  • 发信人昵称:可随意填写
  • 是否需要登录验证:选择“是”
  • 邮箱登录用户名:仅填写邮箱前缀部分,例如“webmaster”
  • 邮箱登录密码:填写对应的邮箱密码

完成上述配置后,还需设置管理员邮箱(可在系统设置中找到),最后保存设置。


第二步:修改源代码以实现邮件提醒功能


这里提供两种方法来实现邮件提醒功能:


(一) 修改e/class/ShopSysFun.php文件


打开e/class/ShopSysFun.php文件,搜索代码“printerror($mess,$location,1);”,在其上一行加入以下代码:



$email=array('webmster@lsrong.cn');    
$subject='邮件标题';    
$content='邮件内容';       
@include(ECMS_PATH.'e/class/SendEmail.inc.php');    
EcmsToSendMail($email,$subject,$content);  

这种方法发送的邮件仅起到提醒作用,邮件内容和标题固定,不包含订单的具体信息。


(二) 自定义函数实现订单相关内容提醒


此方法可以将订单的部分信息包含在邮件中。具体步骤如下:


1. 新增给管理员发送邮件的函数


找到eclassSendEmail.inc.php文件,在文件末尾添加以下代码:



// 给管理员信箱发送通知邮件新增函数
function SendNoticeToAdmin($subject, $body){
        global $empire, $dbtbpre;
        $empire = new mysqlquery();
        $pr = $empire->fetch1("select email from {$dbtbpre}enewspublic limit 1");

        if(is_array($body)){
                foreach($body as $value){
                        $key = key($body);
                        next($body);
                        $msgtext .= "$key:$value\\n";
                }
        }else{
                $msgtext = $body;
        }
        $msgtext .= "\\r\\n此邮件由系统自动发出,请管理员尽快处理\\r\\n";
        $sm = EcmsToSendMail($pr['email'], $subject, $msgtext);
        return $sm;
}

2. 修改eenewsindex.php文件


打开eenewsindex.php文件,找到大约第184行的代码“AddDd($_POST);”,在其前面添加以下代码:



@include("../class/SendEmail.inc.php");
SendNoticeToAdmin("有新订单!订单号".$_POST@[ddno], $_POST);

通过以上两步操作,即可实现包含订单部分内容的邮件提醒功能。


总结来说,帝国CMS通过简单的后台配置与源码修改,即可轻松实现订单邮件提醒功能。无论是固定内容的简单提醒,还是包含订单详情的高级提醒,都可以根据实际需求灵活选择。希望这篇文章能帮助到正在使用帝国CMS搭建商城的朋友们。