Sharepoint 覆盖EmailReceived而不丢失基本EmailReceived功能
我有一个文档库设置来接收电子邮件。收到的电子邮件只有一张图片和一个csv文件,我用它进行处理 override EmailReceived可以完美地工作,但当然,当我重写时,我失去了按照设置中的配置保存输入电子邮件的良好SharePoint功能 据我所知,我可以在活动中调用MyBase.EmailReceived,以使基础功能仍能工作。然而,这是不起作用的,没有收到的电子邮件记录被保留 目前,我正在明确创建一个审计跟踪,但我希望依靠SharePoints现有的功能,因为我相信它会更加健壮 MyBase.EmailReceived呼叫有什么问题?如果这不起作用,我该怎么办Sharepoint 覆盖EmailReceived而不丢失基本EmailReceived功能,sharepoint,sharepoint-2010,overriding,event-receiver,Sharepoint,Sharepoint 2010,Overriding,Event Receiver,我有一个文档库设置来接收电子邮件。收到的电子邮件只有一张图片和一个csv文件,我用它进行处理 override EmailReceived可以完美地工作,但当然,当我重写时,我失去了按照设置中的配置保存输入电子邮件的良好SharePoint功能 据我所知,我可以在活动中调用MyBase.EmailReceived,以使基础功能仍能工作。然而,这是不起作用的,没有收到的电子邮件记录被保留 目前,我正在明确创建一个审计跟踪,但我希望依靠SharePoints现有的功能,因为我相信它会更加健壮 MyB
提前感谢。在编写自己的
EmailReceived
事件接收者时,您将失去默认功能
您需要做的是自己实现这个默认功能。让我给你举个简单的例子。以下示例将所有邮件附件保存到列表中(如果它们是*.csv
文件)。您也可以对电子邮件执行同样的操作,并将其保存到列表中。如您所见,添加文件非常简单。添加将文件添加到文档库
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();
}
编写自己的EmailReceived
事件接收器时,您将失去默认功能
您需要做的是自己实现这个默认功能。让我给你举个简单的例子。以下示例将所有邮件附件保存到列表中(如果它们是*.csv
文件)。您也可以对电子邮件执行同样的操作,并将其保存到列表中。如您所见,添加文件非常简单。添加将文件添加到文档库
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();
}
我也这么怀疑。谢谢你证实这个理论。我也这么怀疑。谢谢你证实这个理论。