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

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

来源:互联网 浏览:3176次 时间: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.sdyueqian.cn
  • 山东欣烨化工山东欣烨化工

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

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

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

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

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

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

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

    www.sdxinyekeji.cn

推荐站点

  • 一起剪 - AI视频创作智能体[免费]一起剪 - AI视频创作智能体[免费]

    一起剪是全球首个免费AI视频创作智能体,是一款强大的在线视频剪辑工具。其重要性在于为自媒体和媒体生产者提供了便捷、高效的视频制作解决方案。主要优点包括具备海量素材库、精美视频模板,可实现视频云端自动合成、一键发布等功能,能够帮助用户零成本制作视频并多渠道快速传播。产品背景上,它提供了一系列先进的AI技术来支持视频创作。价格方面,是免费使用的。定位是面向广大需要进行视频创作的人群,无论是专业的媒体工作者还是普通的自媒体创作者,都能借助它轻松完成视频制作。

    https://www.yiqijian.com/
  • 奇妙元 - 数字人奇妙元 - 数字人

    奇妙元是一站式数字人视频制作和直播平台,重要性在于为用户简化数字人内容创作流程。其主要优点包括一站式服务,涵盖从AI写作、AI绘画、AI配音到数字人视频制作的全流程;提供多种数字形象克隆方案,满足不同需求;告别真人录制,提高创作效率。产品背景是为适应数字内容创作的需求而开发。价格信息未提及,定位是为行业客户和有数字人内容创作需求的用户提供服务。

    https://weta365.com/
  • 快剪辑快剪辑

    快剪辑SaaS是国内领先的视频剪辑软件,具有强大的云端剪辑能力。该软件支持在线去水印、录屏、录音等多种功能,拥有海量版权视频模板、音乐、特效和贴纸,适用于个人和中小企业定制。产品定位为降低视频剪辑门槛,让用户无需专业剪辑基础就能实现创作自由。价格方面未提及,从页面信息推测可能有免费试用或部分功能免费,部分功能付费的模式。其主要优点包括:操作便捷,依托云端无需复杂安装;功能丰富,满足各种视频创作需求;素材多样,商用更安心。

    https://www.kuaijianji.com/
  • 闪剪闪剪

    闪剪是国内领先的AI数字人口播视频在线创作平台,拥有移动端APP版本。其核心功能是利用AI技术自动创作文案并一键生成数字人视频,用户可输入关键词,平台就能迅速完成视频创作。此外,还支持在线定制专属数字人形象及声音。 该平台的重要性在于为企业和个人提供了高效、便捷的视频创作解决方案,降低了视频制作的门槛和成本。其主要优点包括丰富的数字人视频模板、200 + 国际化数字人模特、24 + 国家AI配音、AI文案创作、智能成片等功能,能帮助企业团队轻松实现矩阵营销引流,降本增效。目前暂未提及价格相关信息,其定位是为有视频创作需求的企业和自媒体人提供服务。

    https://shanjian.tv/
  • Capsule - 由AI驱动的视频编辑器Capsule - 由AI驱动的视频编辑器

    Capsule是一款由AI驱动的视频编辑器,专为内容和营销团队设计。其重要性在于能极大提升视频创作的效率与质量。主要优点包括:10倍速创建视频,让创作效率显著提升;支持无缝协作,使团队成员能高效沟通合作;通过运动设计系统确保品牌一致性。产品背景方面,它获得了顶级AI和未来工作投资者的支持。价格方面提供免费注册,也可获取演示和查看定价信息。定位是服务企业团队,不仅面向专业编辑人员,让每个员工都能成为视频创作者。[国内限制访问]

    https://capsule.video/