2017-01-31 15 views
0

Я не могу заставить эту работу работать. Я пытаюсь выполнить итерацию всех почтовых элементов в папке, созданной с именем «SlaughterPDFs», и удалить электронные письма.Удалить письма из папки Outlook с помощью C#

Ниже приведен код, который я использую. В этом коде я просто пытался удалить почтовые элементы из папки «Черновики».

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; 
} 

Кто-нибудь знает, что я делаю неправильно? Или я должен переместить эти письма в новую папку.

ответ

2

Я не уверен, где у вас проблема. Если вы замените цикл for на цикл while 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"]; 

 Смежные вопросы

  • Нет связанных вопросов^_^