0

ここにすべてのフォルダーの詳細が表示されます。今、「受信トレイの下のフォルダー」のみをリストすることを制限したかったのですが、実際には、受信ボックスの下にフォルダーをリストしたかったのです。 。の上 )

マイコード。

private IEnumerable<MAPIFolder> GetAllFolders(Folders folders)
{
    foreach (MAPIFolder f in folders) 
    {
        yield return f;
        foreach (var subfolder in GetAllFolders(f.Folders)) 
        {
            yield return subfolder;
        }
    }
}

ボタンクリックイベント

private void button1_Click(object sender, EventArgs e)
{
    Microsoft.Office.Interop.Outlook.Application oApp  = 
        new Microsoft.Office.Interop.Outlook.Application();
    Microsoft.Office.Interop.Outlook._NameSpace ns = 
        (Microsoft.Office.Interop.Outlook._NameSpace)oApp.GetNamespace("MAPI"); 
    // in here i get the error "userd of unassign local variable".
    // without this line code works fine and return all the Folders & 
    // Sub folders.
    Microsoft.Office.Interop.Outlook.MAPIFolder oPublicFolder = 
        olNS.GetDefaultFolder(
            Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);


    foreach (var f in GetAllFolders(ns.Folders)) 
    {
        //if (f == oPublicFolder) continue;
        if (f.DefaultItemType == OlItemType.olMailItem) 
        {
            string ff = f.Name;
            //Some codings here

        }
    }

}

これは非常に単純なこともあるため、愚かな質問になることもあります。

4

1 に答える 1

0
// Create Application class and get namespace
Outlook.Application outlook = new Outlook.ApplicationClass();
Outlook.NameSpace ns = outlook.GetNamespace("Mapi");

    object _missing = Type.Missing;
    ns.Logon(_missing, _missing, false, true);

    // Get Inbox information in objec of type MAPIFolder
    Outlook.MAPIFolder inbox = ns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);

    // Unread emails
    int unread = inbox.UnReadItemCount;

    // Display the subject of emails in the Inbox folder
    foreach (Outlook.MailItem mail in inbox.Items)
    {
        Console.WriteLine(Wmail.Subject);
    }

受信トレイ内のサブフォルダー名を取得するため

 Microsoft.Office.Interop.Outlook.Application outlook = new Microsoft.Office.Interop.Outlook.Application();
            Microsoft.Office.Interop.Outlook.NameSpace ns = outlook.GetNamespace("Mapi");

            object _missing = Type.Missing;
            ns.Logon(_missing, _missing, false, true);

            // Get Inbox information in objec of type MAPIFolder
            Microsoft.Office.Interop.Outlook.MAPIFolder inbox = ns.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);

            // Unread emails
            int unread = inbox.UnReadItemCount;

            // Display the subject of emails in the Inbox folder
            foreach (Microsoft.Office.Interop.Outlook.Folder folds in inbox.Folders)
            {
                Console.WriteLine(folds.Name);
            }
于 2013-02-14T06:20:15.447 に答える