C# Outlook 不会移动所有电子邮件

标签 c# outlook

我正在使用 Outllok Interop 将电子邮件从一个文件夹移动到另一个文件夹(在获取所有附件之后,但它有效)但它并没有复制所有电子邮件。我试过等待,但没有效果。首先它会移动 6,然后是 3,然后是 1。谁能告诉我为什么它不移动它们?

相关代码如下:

Application oOutlook = new Application();
NameSpace oNs = oOutlook.GetNamespace("MAPI");

Recipient oRep = oNs.CreateRecipient("ContentHelp");
MAPIFolder inbox = oNs.GetSharedDefaultFolder(oRep, OlDefaultFolders.olFolderInbox);

MAPIFolder nihSub = inbox.Folders["NIH"];
MAPIFolder nihArchive = inbox.Folders["NIHarchive"];
Items nihItems = nihSub.Items;
MailItem moveMail = null;
//inboxItems = inboxItems.Restrict("[Unread] = false");

int increment = 0;

try
{
    foreach (object collectionItem in nihItems)
    {
        moveMail = collectionItem as MailItem;
        if (moveMail != null)
        {
            Console.WriteLine("Moving {0}", moveMail.Subject.ToString());
            string titleSubject = (string)moveMail.Subject;
            moveMail.Move(nihArchive);
        }
    }
}

最佳答案

每次循环移动时索引都会重置,因此您永远不会超过一半的项目。 使用 While 循环或从 olItems.Count 到 1 的倒计时。

关于C# Outlook 不会移动所有电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1577536/

相关文章:

c# - 如何将字符串转换为运行时确定的可空类型?

vb.net - Office 加载项安装 VSTO 下载失败

vba - 为在完成前进入无响应状态的宏提供状态更新

Python:打开带有附件的 outlook 组合实例

powershell - 无法识别 Set-OrganizationConfing,即使我可以 Get-OrganizationConfig

html - Outlook 2013 中的要点图像对齐问题

c# - 如何检测文本文件是否经过OCR转换

javascript - 从js代码赋值给mvc razor的隐藏字段

c# - 使用面板 RenderControl 方法时无法找到具有 id 的控件

c# - 使用 C# 中的结构调用 C++ 代码