Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 允许设计师访问DotNetNuke中的电子邮件模板_Email_Dotnetnuke - Fatal编程技术网

Email 允许设计师访问DotNetNuke中的电子邮件模板

Email 允许设计师访问DotNetNuke中的电子邮件模板,email,dotnetnuke,Email,Dotnetnuke,在一个定制的DotNetNuke模块中,我希望能够基于tempalte发送电子邮件。我希望能够为某些模板参数注入文本值。我还希望网站管理员能够编辑电子邮件内容。我希望管理员能够以一种相当简单的方式修改布局和文本 一种解决方案是使用本地化字符串来定制电子邮件内容,电子邮件结构在某处硬编码。这是不需要的,因为它不允许管理员修改布局 另一个解决方案是设置文本/HTML模块以包含电子邮件内容。这样做的好处是允许管理员编辑文本和布局。它的缺点是管理员可能会使用CSS样式表中的样式,而电子邮件阅读器无法访问

在一个定制的DotNetNuke模块中,我希望能够基于tempalte发送电子邮件。我希望能够为某些模板参数注入文本值。我还希望网站管理员能够编辑电子邮件内容。我希望管理员能够以一种相当简单的方式修改布局和文本

一种解决方案是使用本地化字符串来定制电子邮件内容,电子邮件结构在某处硬编码。这是不需要的,因为它不允许管理员修改布局

另一个解决方案是设置文本/HTML模块以包含电子邮件内容。这样做的好处是允许管理员编辑文本和布局。它的缺点是管理员可能会使用CSS样式表中的样式,而电子邮件阅读器无法访问该样式

关于如何做到这一点,还有其他想法吗?第三方插件或模块就可以了。对于我回顾过的电子邮件模块,它们更多的是关于设置电子邮件活动。对于我看到的那些,我不确定我是否可以从自定义模块以编程方式发送电子邮件


谢谢

如果您的电子邮件模板少于2000个字符,我建议您使用模块设置来存储数据。您可以在standard Settings.ascx控件上执行此操作,以覆盖UpdateSettings方法。2000字符限制基于选项卡ModuleSettings.SettingValue数据库字段大小

    public override void UpdateSettings()
    {
        try
          {
            ModuleController objModules = new ModuleController();
            objModules.UpdateTabModuleSetting(TabModuleId, "EmailTemplate", this.txtEmailTemplate.Text);

            SynchronizeModule();              
        }
        catch (Exception exc) //Module failed to load
        {
            Exceptions.ProcessModuleLoadException(this, exc);
        }
    }

就个人而言,有几个选择

  • 本地化文件。事实上,站点管理员可以通过Admin->Languages轻松地修改它。但是,这是每个门户的自定义
  • 模块设置,但您的2000个字符非常有限,但可以让用户根据mdoule进行修改
  • 基于SQL或文件,允许他们根据需要进行自定义,并提供一种简单的上传/下载/管理方法 澄清:步骤1)创建Settings.ascx 2)继承模块设置Base 3)覆盖更新设置(如上)4)使用键“Settings”(设置)将Settings.ascx控件添加到模块定义中-这将确保您的设置页面合并到模块的整体设置页面中。