1

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

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

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

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

谢谢

4

2 回答 2

2

如果您的电子邮件模板可以少于 2000 个字符,我建议您使用模块设置来存储您的数据。您可以在标准 Settings.ascx 控件上执行此操作,以覆盖 UpdateSettings 方法。2000 个字符的限制基于 TabModuleSettings.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);
        }
    }
于 2009-04-03T16:24:45.200 回答
1

个人有几个选择。

  1. 本地化文件。这实际上很容易由站点管理员通过 Admin -> Languages 进行修改。但是,这是针对每个门户的自定义。
  2. 模块设置,但是你非常有限,2000 个字符,但可以让用户根据 mdoule 进行修改。
  3. 基于 SQL 或文件,允许他们根据需要进行自定义,并提供一种简单的上传/下载/管理方式。
于 2009-04-22T18:36:54.743 回答