1

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

覆盖电子邮件接收完美,但当然,当我覆盖时,我失去了很好的 SharePoint 功能,该功能将传入的电子邮件保存为设置中的配置。

据我了解,我可以在我的活动中调用 MyBase.EmailRecieved 以使基础功能仍然有效。但是,这不起作用,并且没有保留传入电子邮件的记录。

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

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

提前致谢。

4

1 回答 1

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();
}
于 2013-03-06T08:56:16.927 回答