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

Delete Emails from Outlook Folder Using C#

我似乎无法正常工作。我正在尝试遍历我创建的名为 '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;
}

有人知道我做错了什么吗?或者我应该将这些电子邮件移动到一个新文件夹中。

我不确定您的问题出在哪里。 如果您将 for 循环替换为下面的 while 循环,它应该会删除文件夹中的所有电子邮件。

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

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

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