欢迎光临SEO网站目录!
当前位置:SEO网站目录 » 站长资讯 » 网站运营 » 文章详细 订阅RssFeed

DTcms留言插件邮件通知功能升级

来源:互联网 浏览:3145次 时间:2017-01-13

你是否也遇到过网站留言几个月才看到,针对于这一问题,我们把原有的DTcms留言插件升级一下,加入邮件通知功能,当有人留言时,系统自动发送封邮件到您常用的邮箱或者发送手机短信。

1.jpg

留言配置管理界面

现在我们开始改造工程吧:

1、首先第一步,添加config目录

2.jpg

2、在config目录下添加一个名为“install.config”的配置文件,添加如下代码

<?xml version="1.0"?>
<install xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <bookmsg>2</bookmsg>
  <booktemplet>wordsmsg</booktemplet>
  <receive>271877887@qq.com</receive>
</install>

3、在model.cs文件中添加配置文件模型。

[Serializable]
public partial class install
{
    public install()
    { }
    private int _bookmsg = 0;
    private string _booktemplet = "";
    private string _receive = "";
    /// <summary>
    /// 通知
    /// </summary>
    public int bookmsg
    {
        set { _bookmsg = value; }
        get { return _bookmsg; }
    }
    /// <summary>
    /// 通知模板别名
    /// </summary>
    public string booktemplet
    {
        set { _booktemplet = value; }
        get { return _booktemplet; }
    }
    /// <summary>
    /// 接收邮箱或手机
    /// </summary>
    public string receive
    {
        set { _receive = value; }
        get { return _receive; }
    }
}

4、在dal.cs文件中添加配置文件操作方法。

/// <summary>
/// 数据访问类:配置文件
/// </summary>
public partial class install
{
    private static object lockHelper = new object();
    public install()
    {
    }
    #region 扩展设置参数
    /// <summary>
    ///  读取站点配置文件
    /// </summary>
    public Model.install loadConfig(string configFilePath)
    {
        return (Model.install)SerializationHelper.Load(typeof(Model.install), configFilePath);
    }
    /// <summary>
    /// 写入站点配置文件
    /// </summary>
    public Model.install saveConifg(Model.install model, string configFilePath)
    {
        lock (lockHelper)
        {
            SerializationHelper.Save(model, configFilePath);
        }
        return model;
    }
    #endregion
}

4、在bll.cs文件中添加以下方法。

/// <summary>
/// 配置文件
/// </summary>
public partial class install
{
    private readonly DAL.install dal;
    public install()
    {
        dal = new DAL.install();
    }
    /// <summary>
    ///  读取配置文件
    /// </summary>
    public Model.install loadConfig(string config_path)
    {
        string cacheName = "gs_cache_feedback_config";
        Model.install model = CacheHelper.Get<Model.install>(cacheName);
        if (model == null)
        {
            CacheHelper.Insert(cacheName, dal.loadConfig(Utils.GetMapPath(config_path)), Utils.GetMapPath(config_path));
            model = CacheHelper.Get<Model.install>(cacheName);
        }
        return model;
    }
    /// <summary>
    ///  保存配置文件
    /// </summary>
    public Model.install saveConifg(Model.install model, string config_path)
    {
        return dal.saveConifg(model, Utils.GetMapPath(config_path));
    }
}

5、在admin目录下添加install.aspx文件。用作管理操作界面;

6、修改“ajax.ashx”文件,在“feedback_add”方法中添加发送方法;在修改方法之前要预先读取配置文件

Model.install config = new BLL.install().loadConfig("../config/install.config");

7、修改“ajax.ashx”文件第89行,添加如下方法

//是否开启通知功能
if (config.bookmsg > 0 && config.receive !="")
{
    switch (config.bookmsg)
    {
        case 1:
            DTcms.Model.sms_template smsModel = new DTcms.BLL.sms_template().GetModel(config.booktemplet); //取得短信内容
            if (smsModel != null)
            {
                //替换模板内容
                string smstxt = smsModel.content;
                smstxt = smstxt.Replace("{webname}", siteConfig.webname);
                smstxt = smstxt.Replace("{webtel}", siteConfig.webtel);
                smstxt = smstxt.Replace("{weburl}", siteConfig.weburl);
                smstxt = smstxt.Replace("{username}", model.user_name);
                smstxt = smstxt.Replace("{usertel}", model.user_tel);
                smstxt = smstxt.Replace("{userqq}", model.user_qq);
                smstxt = smstxt.Replace("{useremail}", model.user_email);
                smstxt = smstxt.Replace("{usertitle}", model.title);
                smstxt = smstxt.Replace("{usercontent}", model.content);
                //发送短信
                string tipMsg = string.Empty;
                bool result = new DTcms.BLL.sms_message().Send(config.receive, smstxt, 1, out tipMsg);
                if (!result)
                {
                    //LogHelper.WriteLog("手机信息发送失败!");
                }
            }
            break;
        case 2:
            //获得邮件内容
            DTcms.Model.mail_template mailModel = new DTcms.BLL.mail_template().GetModel(config.booktemplet);
            if (mailModel != null)
            {
                //替换模板内容
                string titletxt = mailModel.maill_title;
                string bodytxt = mailModel.content;
                titletxt = titletxt.Replace("{webname}", siteConfig.webname);
                titletxt = titletxt.Replace("{username}", model.user_name);
                bodytxt = bodytxt.Replace("{webname}", siteConfig.webname);
                bodytxt = bodytxt.Replace("{webtel}", siteConfig.webtel);
                bodytxt = bodytxt.Replace("{weburl}", siteConfig.weburl);
                bodytxt = bodytxt.Replace("{username}", model.user_name);
                bodytxt = bodytxt.Replace("{usertel}", model.user_tel);
                bodytxt = bodytxt.Replace("{userqq}", model.user_qq);
                bodytxt = bodytxt.Replace("{useremail}", model.user_email);
                bodytxt = bodytxt.Replace("{usertitle}", model.title);
                bodytxt = bodytxt.Replace("{usercontent}", model.content);
                //循环发送
                string[] emailArr = config.receive.Split(',');
                foreach (string email in emailArr)
                {
                    if (DTcms.Common.Utils.IsValidEmail(email))
                    {
                        //发送邮件
                        try
                        {
                            DTMail.sendMail(siteConfig.emailsmtp, siteConfig.emailssl,
                                siteConfig.emailusername,
                                DESEncrypt.Decrypt(siteConfig.emailpassword, siteConfig.sysencryptstring),
                                siteConfig.emailnickname,
                                siteConfig.emailfrom,
                                email,
                                titletxt, bodytxt);
                        }
                        catch
                        {
                            //LogHelper.WriteLog("邮件发送失败!");
                        }
                    }
                }
            }
            break;
    }
}

到此我们的网站留言功能就升级完成了。注意,邮件通知、短信通知都必须先配置系统参数才可以正常使用。

3.jpg

最新点入

  • 山东欣烨化工山东欣烨化工

    山东欣烨化工是一家集科研,生产,销售医药中间体,农药中间体,橡塑助剂,阻燃剂,酚醛树脂于一体的综合性化工企业。。采用轻资产的发展路线,采用参股、租赁工厂,或者代加工的发展模式。 在东营广饶丁庄镇、淄博淄川罗村镇、淄博齐鲁化工园纬六路、潍坊市滨海经济开发区临港路工业园建有生产工厂,德州市禹城化工园。 公司技术力量雄厚,拥有完善的产品检测手段和质量保证体系,密切关注着国内外科研和生产动态,并与山东大学化工学院合作,不断开发和研发新产品,以满足客户的不同需求。

    www.sdxinyechem.cn
  • 济南欣烨生物济南欣烨生物

    现公司主导产品有:生物制药系列,医药中间体,化学溶剂系列,阻燃剂系列,化学试剂系列,颜料燃料系列,橡胶塑料系列,酚醛树脂等系列产品。

    www.sdkaikai.cn
  • 阳光游戏阳光游戏

    阳光游戏网为玩家提供新的网络游戏,单机游戏,手机游戏,手游等资源,经过多年努力已成为游戏玩家首要选择的游戏资讯、游戏资源网站。

    www.shiciwang.com.cn
  • 山东欣烨生物山东欣烨生物

    山东欣烨生物是一家集科研,生产,销售医药中间体,农药中间体,橡塑助剂,阻燃剂,酚醛树脂于一体的综合性化工企业。

    www.sdxinyekeji.cn
  • 站长交易平台站长交易平台

    2898站长资源平台作为站长资源交换平台,致力于为广大站长和网站运营人员提供最方便、最快捷的站长资讯、站长交易、链接交易、链接交换、资源交换等服务。

    www.2898.com

推荐站点

  • OpenClawOpenClaw

    OpenClaw(曾用名:Clawdbot、Moltbot)一款可以部署在个人电脑上的AI代理,采用“龙虾”图标设计,slogan是“The AI that actually does things”,由程序员彼得·斯坦伯格开发。当OpenClaw部署在本地电脑并获得相应权限后,可以直接访问系统。通过部署多台电脑和多个智能体,可以实现自动化处理邮件、阅读文档、编写代码、发布社交媒体内容等工作。OpenClaw爆火后,腾讯云、阿里云、京东云、火山引擎、百度智能云等相继宣布上线OpenClaw云端极简部署及全套云服务,用户可一键完成安装。2026年2月,OpenClaw创始人加入OpenAI,OpenClaw以基金会形式作为开源项目存续。

    https://openclaw.ai/
  • 笔格AiPPT笔格AiPPT

    笔格PPT是一款专注于PPT制作的生产力工具,由成都刻尚科技有限公司开发。其核心功能围绕AI智能技术,能极大地提高用户制作PPT的效率和质量。产品定位为满足各类人群在不同场景下对PPT制作的需求,无论是商务人士的工作总结、教育工作者的教学课件,还是学生的毕业答辩等都能适用。产品的主要优点在于利用AI技术简化了传统PPT制作流程,节省了时间,且提供了海量免费的优质模板供用户选择。从价格上看,根据文档中提到的使用次数相关信息,可能存在免费试用以及后续付费使用不同套餐的情况。

    https://bigppt.cn/
  • 麦当秀MindShow麦当秀MindShow

    MINDSHOW麦当秀是一款基于AI技术的在线PPT生成工具。其诞生背景是为了满足用户快速、高效制作专业PPT的需求,降低制作门槛,让非专业设计人员也能轻松制作出高质量的演示文稿。产品定位为企业级和个人用户提供高效的PPT制作解决方案。优点显著,它能大幅节省设计和排版时间,提升工作效率;无需设计经验,操作简单便捷;支持多语言,便于跨文化交流展示。目前文档未提及价格相关信息。

    https://www.mindshow.vip
  • 腾讯会议AI小助手腾讯会议AI小助手

    腾讯会议AI小助手Pro是腾讯基于最新混元千亿参数大模型推出的全能会议助手。其重要性在于显著提高会议效率,让用户释放更多精力专注于决策。主要优点包括可联网检索、实时整理会议内容、生成内容、智能提醒、查询总结文件等。产品定位是为各类会议场景提供智能化支持,助力企业提升会议管理水平和决策效率。页面未提及产品价格。

    https://meeting.tencent.com/ai/
  • 飞书妙记飞书妙记

    飞书妙记是新一代的智能会议工具,在线生成会议纪要,主打智能语音识别转文字功能,可快捷转录视频音频,将会议交流沉淀为知识,让会议更专注、更高效。它适用于需要进行会议记录、信息整理和知识沉淀的各类场景,如企业会议、培训、访谈等。背景上,随着远程办公和线上协作的需求增加,高效的会议记录和知识共享工具变得尤为重要,飞书妙记应运而生。价格方面暂未提及,定位为提升会议效率和知识管理的智能工具。其主要优点包括准确识别语音、结构化呈现内容、支持多格式导出和分享等。

    https://www.feishu.cn/product/minutes