2017-01-31 22 views
0

私はこれを動作させるように見えることはできません。私は「SlaughterPDFs」という名前のフォルダにあるすべてのメールアイテムを繰り返し処理し、そのメールを削除しようとしています。C#を使用してOutlookフォルダから電子メールを削除

以下は私が使用しているコードです。このコードでは、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; 
} 

私が間違っていることは誰でも知っていますか?または、これらの電子メールを新しいフォルダに移動する必要があります。

答えて

2

どこに問題があるのか​​わかりません。 forループを以下のwhileループに置き換えると、フォルダ内のすべての電子メールが削除されます。

tempInbox = tempApp.GetNamespace("MAPI"). 
       GetDefaultFolder(OlDefaultFolders.olFolderInbox); 
tempInbox = tempInbox.Folders["SlaughterPDFs"]; 
:あなたは、私が使用するフォルダへのアクセスに問題がある場合

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

は(SlaughterPDFsと仮定すると、受信トレイのサブフォルダです)

関連する問題