2013-03-04 51 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