【发布时间】:2014-10-23 12:47:54
【问题描述】:
我想将我的电子邮件附件移动/复制到 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 中的特殊文件夹。移动正常消息现在正在工作。
【问题讨论】:
-
您需要解释“无法正常工作”是什么意思。
-
我的意思是什么都没发生;/
-
您是否尝试使用调试器逐步完成您的方法?如果什么都没发生,我很确定您正在捕获并吞下代码中某个时刻出现的异常。
-
这里有问题,这是服务;/
-
在这种情况下,您将有 2 个选项:a) 将 Logging/Tracing 添加到您的服务以跟踪处理。 b) 为您的方法创建单元测试。不用说,选项 b) 更可取,因为它允许您在 Visual Studio 中运行测试时调试代码,并且不会因跟踪输出调用而污染您的代码。作为第一次紧急情况,我建议确保所有异常都会被抛出,这样您就会在 Windows 事件日志中看到发生的错误。
标签: c# exchange-server