使用C#从Outlook文件夹中删除电子邮件

时间:2017-01-31 03:53:43

标签: c# c#-4.0 outlook delete-file

我似乎无法让这个工作。我试图遍历我创建的名为“SlaughterPDFs”的文件夹中的所有邮件项目并删除电子邮件。

以下是我正在使用的代码。在这段代码中,我只是想从outlook'Drafts'文件夹中删除邮件。

public void deleteMails()
{
    Application tempApp = new Application();
    MAPIFolder tempInbox = default(MAPIFolder);
    Items JunkItems = default(Items);

    tempInbox = tempApp.GetNamespace("MAPI").
        GetDefaultFolder(OlDefaultFolders.olFolderDrafts);
    JunkItems = tempInbox.Items;
    MailItem DeleteMail = default(MailItem);
    foreach (object newMail_loopVariable in JunkItems)
    {
        DeleteMail = (MailItem)newMail_loopVariable;
        DeleteMail.Delete();
    }
    JunkItems = null;
    tempInbox = null;
    tempApp = null;
}

任何人都知道我做错了什么?或者我应该将这些电子邮件移动到新文件夹。

1 个答案:

答案 0 :(得分:3)

我不知道你在哪里遇到问题。 如果用以下while循环替换for循环,它应该删除文件夹中的所有电子邮件。

while (tempInbox.Items.Count > 0)
{
    DeleteMail = (MailItem)tempInbox.Items.GetFirst();
    DeleteMail.Delete();
}

如果您在访问我要使用的文件夹时遇到问题(假设SlaughterPDFs是收件箱的子文件夹):

tempInbox = tempApp.GetNamespace("MAPI").
                 GetDefaultFolder(OlDefaultFolders.olFolderInbox);
tempInbox = tempInbox.Folders["SlaughterPDFs"];
相关问题