覆盖电子邮件收到而不会丢失基本电子邮件收件人功能

时间:2013-03-04 11:43:06

标签: sharepoint sharepoint-2010 override event-receiver

我有一个文档库设置来接收电子邮件。进来的电子邮件有一张图片和一张csv文件,我用它进行一些处理。

覆盖电子邮件已完全正常工作,但当然,当我覆盖时,我失去了可以保存设置中配置的收件箱电子邮件的良好SharePoint功能。

我的理解是,我可以在我的活动中调用MyBase.EmailRecieved,因为底层功能仍然有效。但这并不起作用,也没有保留收到的电子邮件记录。

目前我正在明确创建审计跟踪,但我希望依赖SharePoints现有功能,因为我相信它会更强大。

MyBase.EmailRecieved电话我做错了什么?或者,如果这不起作用,我该怎么做?

提前致谢。

1 个答案:

答案 0 :(得分: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();
}