[英]Moving Email Attachment to another folder in 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);
}
我正在嘗試將附件(如果是電子郵件)移動到Outlook中的特殊文件夾。 移動普通消息現在可以正常工作。
那將行不通,因為您只能使用“移動”和“復制”操作來復制實際的郵箱項目,而不是附件(您應該收到有關“錯誤”和“無效ID”的錯誤)的信息。 一種解決方法是獲取要移動的電子郵件附件的MimeContent,然后從該MimeCotent創建一個New對象,然后將其保存到要將項目移動到例如的文件夾中。
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);
}
}
}
通過這種方法,您不會獲得Message上所有Exchange屬性的全部保真度,因為僅復制了MimeContent,這通常對Email而言不是問題,但對於其他對象類型(如Contacts,Tasks等)來說將是一個問題。
干杯格倫
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.