2011-04-13 90 views
2

我有一个启用了电子邮件的文档库,它接收附带文档的电子邮件。 我想使用他们来自的域名将这些电子邮件和附件进行分组和过滤。这意味着我需要从发件人的电子邮件地址中删除域名,即[email protected]返回techvee.com。如何使用SPEmailEventReceiver解析来自电子邮件的数据

我还想解析电子邮件签名中的信息以在单独的联系人列表中创建联系人记录。

我将非常感谢您的帮助和指导。

问候

保罗Ĵ沙德韦尔

回答

7

您可以实现自己的SPEmailEventReceiver。

public class MailEvents : SPEmailEventReceiver 

覆盖的EmailReceived事件

public override void EmailReceived(SPList list, Microsoft.SharePoint.Utilities.SPEmailMessage emailMessage, string receiverData) 

我会做的是写逻辑对该事件处理程序处理您的邮件,让它邮件移动到另一个文档库。所以基本上你会有一个收到所有电子邮件的传入电子邮件库。通过附加的事件处理程序,您可以通过将邮件复制/移动到您选择的另一个文档库来执行业务逻辑。

记得附加到owstimer.exe来调试这个类!

Maarten

+0

谢谢Maarten,这是我目前的代码,但似乎没有发生任何事情。我已经附上了owstimer服务。 – 2011-04-15 10:12:01

+0

命名空间ParseEmails.EventReceiver1 { 公共类EventReceiver1:SPEmailEventReceiver { 公共覆盖无效EmailReceived(SPList oList,SPEmailMessage oMessage,字符串strReceiverData) { 会将myText字符串= “ - 你好,保罗在这里”; SPListItem oListItem = oList.Items.Add(); oListItem [“Title”] = string.Concat(oMessage.Headers [“Subject”],myText); oListItem [“Body”] = oMessage.HtmlBody; oListItem [“Domain”] = oMessage.EnvelopeSender; oListItem.Update(); } } } – 2011-04-15 10:39:55

+1

您是否已将事件处理程序附加到列表中? ParseEmails.EventReceiver1? – 2011-04-20 14:04:47