1

我正在为 WSS 3.0 解决方案编写自定义电子邮件通知。我正在使用从 IAlertNotifyHandler 继承的自定义类来生成电子邮件。这里有一个很好的例子,展示了如何为即时警报完成此操作。下面是一些与 SPAlertHandlerParams 相关的代码,用于获取有关警报和触发警报的项目的信息。

SPAlertHandlerParams ahp;

int id = ahp.eventData[0].itemId;  //gets the itemId of the item triggering the notification.  

SPListItem myItem = list.GetItembyId(id);

对于即时警报,这非常有用,因为我想要的项目始终位于 eventData 对象的 [0] 位置。对于摘要事件,我想我可以遍历 ahp.eventData 中的所有项目。这有两个问题。

首先,它给了我发送通知的所有事件,而不仅仅是我的。其次, eventData[0].itemId 不再指向列表中的有效 id。它是 6-7 位数字,而不是 3 位数字。

有谁知道获取摘要电子邮件警报信息的正确方法?如果您对此有任何其他问题,请告诉我。

谢谢你的帮助!

4

1 回答 1

0

对于我的项目,我创建了一个自定义计时器作业(使用 Andrew Connell 的帖子)来模仿警报功能。它在一夜之间运行,并通过每日警报查询订阅我的列表的任何用户。然后它将所有新任务打包到自定义电子邮件中。

我保留了自定义警报以抑制系统发出的任何每日通知。我只返回“True”,以便不会为仅分配给 1 人的任务发送警报。我想回顾一下,我可以在自定义警报中运行查询代码,而不需要单独的计时器作业。

于 2011-07-14T14:35:19.343 回答