下载鸥 > 网站下载 > 开发教程 > 帝国CMS

帝国cms使用qq邮箱发送新留言、新注册信息、新信息反馈等通知邮件

368 2020-11-22 19:16:20

收藏

帝国cms使用qq邮箱的pop3/stmp服务,任何等级的qq账号都可用。此外,下载鸥在论坛分享方法的基础上进行了调整,让邮件的格式更加规范、可读性更强。

下面,下载鸥就邮箱的配置、邮箱功能的扩展方面详细讲讲操作规范。
 

测试邮箱可用性


帝国cms使用qq邮箱发送新留言、新注册信息、新信息反馈等通知邮件
1、安装php的openssl的extension,并且在php.ini中开启此extension。(如图1所示)

2、开通qq邮箱的POP3/SMTP服务,并且获取重要的“授权码”。此授权码是作为密码登录邮箱的。(如图2所示)

3、按下图填写帝国cms的SMTP模块设置,其中SMTP的端口请填写"465"。“邮箱登陆密码”请填入第二步的“授权码”。(如图3所示)

4、修改/e/class/class.smtp.php,在大约第62行(帝国cms7.2版本)的$host前添加"ssl://",请不要忽略"ssl://".$host之前的点号。(如图4所示)

5、测试邮箱是否生效
在e文件夹下新建一个send_mail.php文件,输入以下代码(记得修改下面中邮件接收者的E-mail):(如图5所示)

<?php
require('class/connect.php');
require('class/db_sql.php');
$link=db_connect();
$empire=new mysqlquery();
echo"sendstart<br/>";
include('class/SendEmail.inc.php');
$mail_test="xxx@qq.com";//邮件接收者的E-mail
$sm=EcmsToSendMail($mail_test,"邮件测试","testtesttesttesttest");//邮件接收者的E-mail,邮件标题,邮件正文
echo $mail_test."sendover<br/>";
db_close();
$empire=null;
?>

6、在浏览器中输入"[网站地址]/e/send_mail.php"测试。(本地localhost也可用)

7、测试完成后删除/e/send_mail.php文件。

以上是我们测试邮箱的可用性。在确定邮箱可用后,我们可以结合邮箱开发出一系列的功能。
 

新增发送邮件函数

找到/e/class/SendEmail.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);
            switch ($key){
                case "name":$key="姓名";break;
                case "email":$key="邮箱";break;
                case "mycall":$key="联系电话";break;
                case "company":$key="公司名称";break;
                case "lytext":$key="留言内容";break;
            }
            $msgtext .= "$key:"."$value"."\n";
        }
    }else{
        $msgtext=$body;
    }
    $msgtext .= "\r\n\r\n此邮件由系统自动发出,请管理员尽快处理..\n\r";
    $sm=EcmsToSendMail($pr['email'],$subject,$msgtext);
    return $sm;
}

 

各类应用场景中发送邮件


1.有新订单时
修改/e/enews/index.php,在大约184行
AddDd($_POST);
在这一行前面加上

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

完活,这只是起到一个提醒功能,所以邮件界面什么的就不用考虑了,管理员收到邮件后去帝国后台处理就是了。

2.有新的投稿时
修改/e/class/qinfofun.php,在大约850行

printerror("AddQinfoSuccess",$reurl,1);


在这一行前面加上

@include('SendEmail.inc.php');
SendNoticeToAdmin("收到来自".$add['title']."的投稿",$add);


3.有新的信息反馈时
修改e class q_functions.php,在大约468行

$reurl=DoingReturnUrl("../tool/feedback/?bid=$bid",$add['ecmsfrom']);


在这一行前面加上:

@include("SendEmail.inc.php");
SendNoticeToAdmin("收到来自".$add['title']."的信息反馈",$add);


4.有新留言时
修改/e/enews/index.php,在大约215行
AddGbook($_POST);
在这一行前面加上:

@include("../class/SendEmail.inc.php");
SendNoticeToAdmin("收到新留言",$_POST);


5.有会员在网站上注册(如果是注册需要审核,收到这封邮件管理员可以及时去后台审核)
修改/e/enews/index.php,在大约74行

register($username,$password,$repassword,$email);


在这一行前面加上

@include('../class/SendEmail.inc.php');
SendNoticeToAdmin("新会员注册,用户名:".$username,$_POST);


6.网站后台启用注册需要邮箱验证,验证通过后会员会收到一封欢迎信

由于这个邮件是给会员看的,所以内容格式排版上就要讲究一下了

(1)在eclass下新增一条文件,命名user_template_register.txt,内容如下(仅供参考,可自行修改)
欢迎[!--USERNAME--]注册本网站。

(2)修改/e/class/qmemberfun.php,在大约188行

printerror('ActUserSuccess',$public_r['newsurl'],1);


在这一行前面加上

@include('SendEmail.inc.php');
$msgtext=file_get_contents("user_template_register.txt");
$msgtext=str_replace('[!--USERNAME--]',$r[username],$msgtext);
EcmsToSendMail($r[username],"欢迎注册",$msgtext);


此久,还有一些场景也需要用到邮件,比如
1)网站没有启用邮箱验证,但是会员注册后需要管理员手工审核,审核通过后会员会收到一封欢迎信
2)商城系统,会员下单后会实时收到邮件通知,订单通过审核后,也会再给客户一封邮件。
 

附注:关于验证码失效

网上有朋友说,如果将函数加到/e/enews/index.php,会导致验证码失效。因此分享了另一种方案,如下

新留言提醒
打开 /e/enews/gbookfun.php 
搜索:printerror("AddGbookSuccess",$reurl,1);

在上面增加 

include("../class/SendEmail.inc.php");
SendNoticeToAdmin("收到新留言",$_POST);


新反馈提醒
打开 /e/class/q_functions.php 
搜索:printerror("AddFeedbackSuccess",$reurl,1);

在前面加

include("SendEmail.inc.php");
SendNotceToAdmin("收到新的网站订单 - 提交人:".$add['name'],$_POST);


本方案是结合了帝国cms论坛的方法与网上其他网友的分享并最终优化而来。

本文地址:https://xzo.com.cn/develop/empire/99.html

有帮助,很赞!

信息来源:下载鸥
导出教程 下载word版教程
发表评论 共有条评论
关于帝国CMS


帝国cms是一款功能极为强大的cms程序,性能强悍、安全性高,可轻松支持10万数据,高级开发人员可制作出能容纳千万数据量的网站,是国内最出色的开源cms程序之一,推荐企业用户使用

当前最新版本为7.5,8.0版本即将上线,新版本的核心优化点在于多终端的适配。

推荐帝国CMS开发教程
帝国CMS留言板怎样增加字段?
帝国CMS留言板怎样增加字段?

网站留言板是用户留存的重要环节,但帝国cms自带的留言板功能十分单一,大多数...

1 299
帝国CMS有栏目seo标题吗,在哪里设置?
帝国CMS有栏目seo标题吗,在哪里设置?

很多用惯了织梦CMS的朋友在用帝国以后就会非常困惑,因为织梦CMS他的栏目是有...

1 266
帝国CMS生成选项是“ID目录”无斜扛解决的方法
帝国CMS生成选项是“ID目录”无斜扛解决的方法

如果你栏目生成选项选择的ID目录,那么帝国他生成的地址会少一个斜扛,访问时就...

3 383
帝国cms怎样展示会员总数与最新注册的会员名称?
帝国cms怎样展示会员总数与最新注册的会员名称?

如果网站会员数量较多,展示会员总数与最新注册会员名可以有效提升用户留存。...

3 317
帝国cms怎样删除收藏的信息?
帝国cms怎样删除收藏的信息?

帝国cms是支持收藏功能的,但如果要删除收藏则不是很方便,通过本教程可以实现...

1 247
帝国cms搜索结果关键词标红怎么实现?
帝国cms搜索结果关键词标红怎么实现?

帝国cms7.5默认是有关键词标红功能的,但一些站使用了二开版本的搜索结果支持...

3 327
帝国cms怎样判断一个栏目有没有子栏目?(父栏目换位判断原创方案)
帝国cms怎样判断一个栏目有没有子栏目?(父栏目换位判断原创方案)

在帝国cms站点的开发过程中,有时候需要判断栏目有没有下级栏目,如果有子栏目,...

3 328
360蜘蛛抓取帝国cms后台目录威胁网站安全
360蜘蛛抓取帝国cms后台目录威胁网站安全

使用360极速浏览器已经很长时间,一直感觉用起来相当不错。一方面有chrome的...

0 444
随机帝国CMS开发教程
帝国cms利用灵动标签制作sitemap.xml网站地图方法
帝国cms利用灵动标签制作sitemap.xml网站地图方法

帝国cms利用自定义页面”来创建sitemap.xml地图的方法。在后台找到自定义页...

1 372
帝国CMS重置清空/信息并让ID从1开始
帝国CMS重置清空/信息并让ID从1开始

注意!在进行本操作前一定要备份下数据库,新手很容易因为一点点失误玩坏数据库...

0 259
帝国CMS列表页list.var调用信息所属专题
帝国CMS列表页list.var调用信息所属专题

复制粘贴到列表内容模板内,务必注意需要开启“使用程序代码”才能生效。...

0 339
帝国cms取消了信息反馈表单必填项还是报错“带*项为必填 ”怎么办?
帝国cms取消了信息反馈表单必填项还是报错“带*项为必填 ”怎么办?

帝国cms取消了信息反馈表单必填项还是报错“带*项为必填 ”怎么办?这个问题...

0 553
帝国CMS二次开发PHP跨表查询相关文章
帝国CMS二次开发PHP跨表查询相关文章

帝国CMS默认自带的相关信息调用是“[otherlink]1,'',10,32,0,0,0[/otherl...

0 177
帝国CMS灵动标签调用广告列表
帝国CMS灵动标签调用广告列表

帝国cms默认JS广告调用标签两个缺点:1、无法调用列表类型,只能单个调用;2、无...

0 678
帝国CMS二次开发多值字段PHP调用教程(调用下载地址直链等)
帝国CMS二次开发多值字段PHP调用教程(调用下载地址直链等)

帝国CMS当使用多值字段时,调用就成了个大问题,用默认标签调用会出现“|”,所以...

0 528
帝国CMS模板存在哪个数据表,怎样用MySQL命令批量修改模板?
帝国CMS模板存在哪个数据表,怎样用MySQL命令批量修改模板?

帝国CMS首页/封面/列表/文章页等各类模板存放于哪些数据表之中?如何使用Mysq...

7 1076
客服QQ:341553759
点击咨询 常见问题 >
官方交流群:90432500
点击加入