【发布时间】:2015-12-28 22:10:06
【问题描述】:
我有一个 C# 程序(实际上它只是一个被 NUnit 使用的 C# 库),我希望根据这篇文章稍微修改它:How to Programmatically move items in outlook。我目前面临一个文件夹,其中包含大约 350kb 左右的 3500 条消息,并且正在永远移动到我的存档,以便我可以再次发送和接收电子邮件(因为我的收件箱目前是 500Mb 中的 1.5Gb ......哈哈)但对于我的生活,我无法弄清楚如何获取我的存档文件夹。因为我在工作,所以我有点多任务处理,所以我可以随时编辑。因此,如果您有任何现成的代码可以找到存档文件夹,那就太好了。谢谢
编辑
可以表明我确实有一些工作正在进行中(基于负面反馈)这是我现在拥有的代码(因为是的,我知道我有一个给我的 codez)
这是我的 NUnit 测试用例,它查看一个文件夹并为我提供具体信息
[Test]
public void CheckMessages()
{
List<EmailMessage> messages = new List<EmailMessage>();
using (var target = new EmailMessageProvider())
{
messages.AddRange(target.GetEmailMessages("UnexpectedErrors\\NotFindImage"));
}
Dictionary<int, string> asdf = new Dictionary<int, string>();
foreach (var item in messages)
{
var line = item.Body.Split(new string[] { Environment.NewLine }, StringSplitOptions.None)[2];
var revisionId = int.Parse(Regex.Match(line, @"\-*\d+").Value);
var path = line.Substring(line.IndexOf("\\\\"));
if (asdf.ContainsKey(revisionId))
{
Assert.That(path, Is.EqualTo(asdf[revisionId]));
}
else
{
asdf.Add(revisionId, path);
}
}
foreach (var item in asdf.OrderBy(x => x.Key))
{
Console.WriteLine($"{item.Key} {item.Value}");
}
}
我使用同一个类来查找消息(在另一个测试中)并将其移动到该测试正在使用的子文件夹中。
这是我的移动代码
public void MoveSurveyPrintComponentsNotFound()
{
var destination = _baseFolder.Folders["UnexpectedErrors"].Folders["NotFindImage"];
foreach (var mailItem in _baseFolder.Folders["UnexpectedErrors"].Items.OfType<MailItem>())
{
mailItem.UseMailItem(x =>
{
if (x.Body.Contains("Foobar.Common.Exceptions.ImageNotFound"))
x.Move(destination);
});
}
}
编辑 2
看起来我可能刚刚得到它。我发现在MAPI Namspace 中,其中一个子文件夹是Archives。我将尝试更改一些变量,看看它是否会移动。问题只是检查一个文件夹需要超过 31 秒。那好吧。总比没有好。
【问题讨论】:
标签: c# outlook outlook-2013