2013-03-04 70 views
1

我有一个文档库设置来接收电子邮件。进来的电子邮件有一张图片和一个csv文件,我用它进行一些处理。覆盖EmailRecieved而不失去基本EmailRecieved功能

重写emailrecieved完美,但当然,因为我重写我失去了良好的SharePoint功能,保存在设置中配置的包含电子邮件。

这是我的理解,我可以调用MyBase.EmailRecieved在我的事件中的底层功能仍然工作。然而,这不起作用,并且没有保留电子邮件记录。

现在我明确地创建了审计跟踪,但我想依靠SharePoint现有的功能,因为我相信它会更强大。

我在做什么错误的MyBase.EmailRecieved调用?或者,如果这不起作用,我可以做些什么?

在此先感谢。

回答

1

当你自己的EmailReceived事件接收器你松散的默认功能。

你将不得不做的是自己实现这个默认功能。让我给你一个简单的例子。以下示例将所有邮件附件保存到列表中,如果它们是*.csv文件。您可以对emailMessage执行同样的操作,并将其保存到列表中。正如您所看到的,添加Files.Add以便将文件添加到文档库就非常简单。

public override void EmailReceived(SPList list, SPEmailMessage emailMessage, string receiverData) 
{ 
    SPFolder folder = list.RootFolder; 

    //save attachments to list 
    foreach (SPEmailAttachment attachment in emailMessage.Attachments) 
    { 
     if (attachment.FileName.EndsWith(".csv")) 
     { 
      var attachmentFileName = attachment.FileName; 
      folder.Files.Add(folder.Url + "/" + attachmentFileName, attachment.ContentStream, true); 
     } 
    } 

    list.Update(); 
} 
+0

我很怀疑。感谢您确认这一理论。 – GeorgeK 2013-03-12 09:42:32