将电子邮件附件移动到Outlook中的另一个文件夹中
问题描述:
我想将我的电子邮件附件移动/复制到Outlook中的新文件夹中/并且我的代码无法正常工作。将电子邮件附件移动到Outlook中的另一个文件夹中
foreach(Item item in findResults.Items)
{
EmailMessage email = EmailMessage.Bind(service, item.Id, new PropertySet(BasePropertySet.FirstClassProperties, ItemSchema.Attachments));
if(false)
{
// OTC Marker HTML Body
}
else
{
if (email.HasAttachments)
{
foreach (Attachment attachment in email.Attachments)
{
EmailMessage emailAttachment = EmailMessage.Bind(service, attachment.Id, new PropertySet(BasePropertySet.FirstClassProperties, ItemSchema.Attachments));
ItemAttachment itemAttachment = attachment as ItemAttachment;
itemAttachment.Load();
EmailMessage mess = itemAttachment.Item as EmailMessage;
moveToTestFolder (mess, @"TestFolder");
}
}
else
{
//to do
}
}
}
而且我moveToTestFolder方法:
private void moveToTestFolder (EmailMessage item, string folderName)
{
Folder rootfolder = Folder.Bind(service, WellKnownFolderName.MsgFolderRoot);
rootfolder.Load();
var folders = rootfolder.FindFolders(new FolderView(20));
var folderItemToMove = folders.FirstOrDefault(f => f.DisplayName.Equals(folderName, StringComparison.OrdinalIgnoreCase));
item.Move(folderItemToMove.Id);
}
我'尝试移动附件(如果是电子邮件)的特殊文件夹中的前景。移动正常信息现在正在工作。
答
这不起作用,因为您只能使用移动和复制操作来复制实际的邮箱项目而非附件(您应该收到有关错误和无效标识的错误)。这其中的一个解决办法是让MimeContent你要移动,然后创建从MimeCotent一个新的对象,并将其保存到文件夹要移动的项目,例如电子邮件附件
foreach (Attachment Attach in EWSItem.Attachments)
{
if (Attach is ItemAttachment)
{
PropertySet psProp = new PropertySet(BasePropertySet.FirstClassProperties);
psProp.Add(ItemSchema.MimeContent);
((ItemAttachment)Attach).Load(psProp);
if (((ItemAttachment)Attach).Item.MimeContent != null)
{
EmailMessage NewMessage = new EmailMessage(service);
NewMessage.MimeContent = ((ItemAttachment)Attach).Item.MimeContent;
NewMessage.SetExtendedProperty(new ExtendedPropertyDefinition(3591, MapiPropertyType.Integer), "1");
NewMessage.Save(folderItemToMove.Id);
}
}
}
你不”因为只有MimeContent被复制,所以通常对电子邮件没有问题,但是对于其他对象类型,如联系人,任务等,将会成为问题。
干杯 Glen
您需要说明“无法正常工作”的含义。 – Filburt 2014-10-22 07:42:22
我的意思是什么都没有发生;/ – PiotrKowalski 2014-10-22 07:45:41
你是否尝试用调试器来调试你的方法?如果什么都没有发生,我很肯定你正在捕捉和吞咽你的代码中某处出现的异常。 – Filburt 2014-10-22 08:12:04