我正在尝试使用 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
一片空白
我已经尝试将此作为计划任务的一部分(最终需要在其中),并在页面的上下文中尝试。在这两种情况下它都是空的。
有没有人知道我是如何得到这个参考的。文档对此很模糊。我担心这是不可能的。
我正在使用表服务器 7
非常感谢
编辑
深入了解 SDK - 代码
EPiServerMailSection.Instance.CurrentSite.SiteId
将返回正确的站点 ID。因此调度程序知道它只是未能拾取站点对象的站点。
还有代码
SiteHandler.Instance.GetSiteList().Count()
返回计数 0,因此它显然没有在沿线某处加载网站集合。这似乎是它的关键问题