加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#Outlook没有移动所有电子邮件

发布时间:2020-12-16 09:24:56 所属栏目:百科 来源:网络整理
导读:我正在使用Outllok Interop将电子邮件从一个文件夹移动到另一个文件夹(在获取所有附件之后,但这有效)但它不会复制所有电子邮件.我已经尝试过等待,但它没有效果.首先它会移动6,然后移动3,然后移动1.可以有人告诉我它为什么不移动它们? 相关代码如下: Applic
我正在使用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);
        }
    }
}

解决方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读