我有一个文档库设置来接收电子邮件。进来的电子邮件有一张图片和一张csv文件,我用它进行一些处理。
覆盖电子邮件已完全正常工作,但当然,当我覆盖时,我失去了可以保存设置中配置的收件箱电子邮件的良好SharePoint功能。
我的理解是,我可以在我的活动中调用MyBase.EmailRecieved,因为底层功能仍然有效。但这并不起作用,也没有保留收到的电子邮件记录。
目前我正在明确创建审计跟踪,但我希望依赖SharePoints现有功能,因为我相信它会更强大。
MyBase.EmailRecieved电话我做错了什么?或者,如果这不起作用,我该怎么做?
提前致谢。
答案 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();
}