tk挠痒痒网址发布页-秘密武器
历史搜索

帝国CMS网站留言反馈使用SMTP发送通知到管理员邮箱的方法

网站开发2026-05-01 15:41:33

帝国CMS是常用的一种建站系统,本人在使用过程中想要让用户在网站上的留言或者信息反馈发送个邮件通知自己,这应该如何实现呢?网上的教程很少,但还是找到了能用的,经过小编改动,自我感觉非常方便。下面将使用外部SMTP服务发送邮件的方法分享给大家。这个方法需要准备一个启用了SMTP功能的邮箱。

首先,在后台找到系统设置,系统参数设置,基本属性中,填写接收通知邮件的管理员邮箱。
其次,在FTP/EMAIL设置卡中,填写SMTP参数。包括SMTP服务器,SMTP端口,发信人地址填写发送通知邮件使用的邮箱,呢称,邮箱登录用户名和密码。如下图。
帝国CMS网站留言反馈使用SMTP发送通知到管理员邮箱的方法 1
然后,添加邮件发送函数。步骤如下:
1、打开eclassSendEmail.inc.php
搜索 //发送邮件
在上面加代码:
//给管理员信箱发送通知邮件新增函数
function SendNoticeToAdmin($subject,$body){
global $empire,$dbtbpre;
$empire=new mysqlquery();
$pr=$empire->fetch1("select email from {$dbtbpre}enewspublic limit 1");
$msg = '';
$msgtextt=$msg;
$sm='';
$msg=$empire->fetch1("select title,email,company,mycall,address,saytext,ip,lyurl,saytime from {$dbtbpre}enewsfeedback order by id desc limit 1");
if(is_array($body)){
$msgtextt .= "客户名字是:".$msg[title]."<br />邮箱:".$msg[email]."<br />电话:".$msg[mycall]."<br />国家:".$msg[address]."<br />公司:".$msg[company]."<br />留言信息是:".$msg[saytext]."<br/>留言时间:".$msg[saytime]."<br />客户IP:".$msg[ip]."<br />留言页面:".$msg[lyurl]."<br />请勿直接回复,此邮件只是通知,需要你另外新写邮件回复到客户所留邮箱!";
}
$msgtextt .= "rnrn此邮件由系统自动发出,请尽快处理nr";
$sm=EcmsToSendMail($pr['email'],$subject,$msgtextt);
return $sm;
}
//给管理员信箱发送留言
function SendGbookToAdmin($subg,$bodyg){
global $empire,$dbtbpre;
    $empire=new mysqlquery();
    $pr=$empire->fetch1("select email from {$dbtbpre}enewspublic limit 1");
        $msgb = '';
$msgtexttt=$msgb;
$smg='';
$msgb=$empire->fetch1("select name,email,mycall,lytime,lytext,ip from {$dbtbpre}enewsgbook order by lyid desc limit 1");
if(is_array($bodyg)){
$msgtexttt .= "客户名字是:".$msgb[name]."<br />邮箱:".$msgb[email]."<br />电话:".$msgb[mycall]."<br />留言信息是:".$msgb[lytext]."<br/>留言时间:".$msgb[lytime]."<br />客户IP:".$msgb[ip]."<br />请勿直接回复,此邮件只是通知,需要你另外新写邮件回复到客户所留邮箱!";
}
$msgtexttt .= "rnrn此邮件由系统自动发出,请尽快处理nr";
$smg=EcmsToSendMail($pr['email'],$subg,$msgtexttt);
return $smg;
}
以上代码是在程序将客户留言和反馈写入到数据库中后,再从数据库中将需要展示在通知邮件中的信息调用出来。大家可以根据自己的需求修改需要调用的字段。

2、打开eclassq_functions.php

搜索:
printerror("AddFeedbackSuccess",$reurl,1);

在上面增加:
Require("/e/class/SendEmail.inc.php");
SendNoticeToAdmin("收到来自".$add['title']."的留言",$add);
并在代码$reurl=DoingReturnUrl("../tool/feedback/?bid=$bid",$add['ecmsfrom']);前加&ldquo;//&rdquo;,屏蔽掉没用的代码。

这样就可以实现将信息反馈自动发送到邮箱的功能了。


3、实现网站留言发送邮件通知管理员。

打开eenewsgbookfun.php
搜索
printerror("AddGbookSuccess",$reurl,1);
在上面增加:
require("/e/class/SendEmail.inc.php");
SendGbookToAdmin("收到".$add['name']."的新留言",$_POST);

屏蔽掉没用的代码:
//$reurl=DoingReturnUrl("../tool/gbook/?bid=$bid",$add['ecmsfrom']);

这样就可以实现用户留言自动发送到邮箱的功能。

4、如果服务器25端口被屏蔽,可以使用465端口。并修改文件eclassclass.smtp.php,在大约第62行(帝国cms7.5版本)
在将代码:$this->smtp_conn = fsockopen($host,
修改为:
$this->smtp_conn = fsockopen("ssl://".$host,
修改完以上文件后,大家可以在自己的网站前台测试下,是不是留言信息以及反馈信息都可以发送到管理员邮箱了。

其实小编使用的方法还有优化空间,只是因为工作太忙就懒的修改了。比如将发送邮件函数简化到q_functions.php和gbookfun.php文件中。大家可以根据自己的需求进行优化。

本文是由用户"网站开发"发布,所有内容的版权归原作者所有。没有经过书面许可,任何单位或个人不得以任何形式复制、转载、引用本网站的内容。否则将追究法律责任。

相关专题