我正在尝试使用Episerver邮件发送一组电子邮件。 我写了以下内容作为概念证明

        ISite site = (Site)SiteHandler.Instance.CurrentSite;
       ICategory category = site.Categories[0]; //..  hack I know

        Message message = new Message(subject: "Test 1",
                                        bodyText: "Test 1",
                                        bodyHtml: "Test 1",
                                        container: GetRecipientContainer(),
                                        fromAddress: "demo@demo.com",
                                        fromName: "Email User",
                                        addParametersToRedirectedLinks: false,
                                        category: category,
                                        site: site);

        var returnMessage = EPiServerMailHandler.Send(message, true);

但是它总是崩溃

调用的目标已引发异常。 [你调用的对象是空的。

具体来说,它无法获得对该站点的引用。 SiteHandler.Instance.CurrentSite为null

我已经将此作为计划任务(最终需要在其中进行)的一部分进行了尝试,并且只是在页面上下文中尝试了。 在两种情况下均为空。

有谁知道我如何获得这个参考。 该文档对此很晦涩。 我担心这是不可能的。

我正在使用Episerver 7

非常感谢

编辑

深入研究SDK-代码

EPiServerMailSection.Instance.CurrentSite.SiteId

将返回正确的网站ID。 因此,调度程序知道该站点无法拾取站点对象。

还有代码

SiteHandler.Instance.GetSiteList().Count()

传回0的计数,因此显然不会沿这条线加载某个网站的集合。 这似乎是关键问题

===============>>#1 票数:1 已采纳

好的-我终于解决了这个问题。

  1. 您必须在Episerver邮件中至少创建一个部分。 没有此CurrentSite为null
  2. 一旦获得网站,就可以从下面的代码中获取类别。 然后send方法停止错误。 它是否发送邮件是目前尚待解决的问题-我似乎遇到了SMPT服务器/垃圾邮件过滤器类型问题。 那好吧。

     ISite site = (ISite)SiteHandler.Instance.CurrentSite; ICategory category = EPiServerMailModule.Instance.GetSiteCategory(site); 

  ask by Crab Bucket translate from so

未解决问题?本站智能推荐:

1回复

Episerver 7从6升级到页面类型

我有一个刚刚从EpiServer 6升级到7的项目。该项目运行良好,但是现在我想将页面类型移到派生自PageData的类中。 我将如何进行呢? 我们没有PageTypeBuilder定义的类型,全部来自数据库。 我想我们从admin gui中页面类型的GUID开始,并在PageData类的
1回复

所有页面上的临时状态消息EPiServer 7

我需要EPiServer 7中的一项功能,在该功能中,我可以输入一条临时消息,该消息将显示在网站页面的顶部,例如,如果支持号码有问题,则显示“支持号码当前关闭...”,因此每个人都可以看到。 问题解决后,我将其删除。 有没有可以使用的类似功能,或者应该如何完成?
2回复

您如何支持为EPiServer属性选择多个枚举值?

我有一个允许用户选择多个枚举值的属性,此刻此功能可以很好地将信息保存到数据库中并使用它。 但是,它似乎无法正确地将属性中的值读回到编辑UI。 我认为枚举类型存在某种类型的问题,导致SelectMany值未按您期望的那样设置。 我有以下枚举: 和以下ISelectionFac
2回复

Episerver-截取PublishedContent事件时,页面类型变为无可编辑

我正在连接Episerver中的PublishedContent事件,因此当用户发布特定页面类型时,将执行一些逻辑(创建pdf)并将字符串值保存到属性之一(pdf的路径)中。 这正在工作,创建了PDF,并且还保存了PDF的路径。 但是,我的问题是发布完成后,所有属性变为只读,我必须单
1回复

AJAX页面的EpiServer本地化

我有一个使用EpiServer CMS 7的站点。 我在ajax调用后返回的内容语言有问题。 例如,在某些页面上我有一个链接,在点击它之后,AJAX请求将被发送到服务器,内容将被返回并插入特殊容器中。 我有以下url请求AJAX: 此链接始终包含“epslanguage”参数中
1回复

使用反射和GetValue问题

我有一个抽象类,看起来像这样: 还有一个从PageObjectsBase派生的类: 还有一个PageRating类,其中PageRatingList.PageRatings持有以下集合: PageRatingList被存储在数据库中(EPiServer的动态数据存储,更具
2回复

在EPiServer中以编程方式创建属性

这可能是一个非常简单的问题,但是我对EPiServer还是陌生的,所以请帮忙。 我正在使用EPiServer Relate演示站点。 我想在Episerver.Common.Security.IUser类型上以编程方式创建一个新属性。 我已使用CMS编辑模式“管理”选项创建了属性。
1回复

如何以编程方式设置EpiServer.Url属性

在我的BlockData类型上,我具有EpiServer.Url类型的属性 public virtual EpiServer.Url Url { get; set; } 从EditMode可以为具体的PageData实例设置它,但是我不确定如何在仅具有ContentReference
1回复

使用EPiServer查找索引页面文件

我正在尝试使用EPiServer Find(7.0.586.24)为页面文件建立索引,但是索引器似乎没有为页面文件文件夹中子目录中的文档建立索引。 例如,我有一个带有页面文件夹的页面,如下所示: 日志显示抛出以下异常: 我的VirtualPathProvider设置为Virtu
1回复

使用MVC和Razor在EPiServer 7中构建顶级菜单

我试图弄清楚如何在EPiServer 7中实现菜单。唯一的可用文档显示了如何使用我不使用的Web表单来执行此操作。 任何建议如何做到这一点? 谢谢