Find email-enabled public folders exclusively using "Microsoft.Office.Interop.Outlook"

ReneKettererKleinsteuber 20 Zuverlässigkeitspunkte
2024-05-14T15:12:12.95+00:00

Is there a way to exclusively identify email-enabled public folders using Microsoft.Office.Interop.Outlook? EWS or PowerShell should not be used. The program should run on the workstation and utilize the installed Outlook.

Once I've found an email-enabled public folder, I should list the emails contained within it.

So far, I'm encountering difficulties. For instance, I have the following method:

// Recursive method for listing the email addresses of email-enabled public folders
static void ListPublicFolders(Outlook.Folder? folder, string indent)
{
    if (folder != null)
    {
        foreach (object obj in folder.Folders)
        {
            if (obj is Outlook.Folder)
            {
                Outlook.Folder? subFolder = obj as Outlook.Folder;
                if (subFolder != null && subFolder.DefaultItemType == Outlook.OlItemType.olMailItem)
                {
                    Outlook.MAPIFolder? parentFolder = subFolder.Parent as Outlook.MAPIFolder;
                    string              parentName   = parentFolder != null ? parentFolder.Name : "Parent folder not found";
                    Console.WriteLine($"{indent}- {subFolder.Name}: {parentName}");
                    if (parentFolder != null)
                    {
                        Marshal.ReleaseComObject(parentFolder);
                    }
                }
                ListPublicFolders(subFolder, indent + "  ");
                if (subFolder != null)
                {
                    Marshal.ReleaseComObject(subFolder);
                }
            }
        }
    }
}

The query

if (subFolder != null && subFolder.DefaultItemType == Outlook.OlItemType.olMailItem)

fails because subFolder.DefaultItemType returns the value Outlook.OlItemType.olPostItem, even though the public folder was set up as an email-enabled folder in Exchange.

Specifically, this is in Microsoft 365. In the Exchange admin center, when creating the folder, I explicitly checked the box for "Email-enabled." This action resulted in two additional options: "Delegation" and "Email properties." In "Email properties," I can specify an alias and a display name. By default, both fields are set to "Orders." Now, I expect the public folder to be email-enabled, with the email address orders@domain.tld.

I don't understand why Outlook is treating the folder incorrectly (I can only create posts and not send emails).

Perhaps someone can help me figure this out.

Thank you and best regards,

René

Exchange Server
Exchange Server
Eine Familie von Microsoft-Client- und Serversoftware für Messaging und Zusammenarbeit.
16 Fragen
Office
Office
Eine Sammlung von Microsoft-Produktivitätssoftware, die gängige Geschäftsaufgaben unterstützt, darunter Textverarbeitung, E-Mail, Präsentationen sowie Datenverwaltung und -analyse.
42 Fragen
.NET
.NET
Microsoft-Technologien, die auf dem .NET-Softwareframework basieren.
18 Fragen
C#
C#
Eine objektorientierte und typsichere Programmiersprache, die ihre Wurzeln in der C-Sprachenfamilie hat und die komponentenorientierte Programmierung unterstützt
11 Fragen
0 Kommentare Keine Kommentare
{count} Stimmen

1 Antwort

Sortieren nach: Am hilfreichsten
  1. Dimitar Denkov (Convergys Corporation) 885 Zuverlässigkeitspunkte Microsoft-Anbieter
    2024-05-15T13:24:43.6133333+00:00

    Hallo René,

    Du hast Deine Frage im deutschsprachigen Bereich der Q&A gestellt, weshalb man nicht auf Englisch umschalten muss. Die fehlende Einstellung scheint die Zulassung eingehender E-Mails anonymer Benutzer zu sein. Diese Berechtigung für das anonyme Konto kannst Du entweder im Outlook oder mit Exchange Online PowerShell festlegen. In Outlook kann ein Konto, das über Besitzerberechtigungen für den E-Mail-aktivierten öffentlichen Ordner verfügt, an den anonyme Benutzer E-Mails senden sollen, über Öffentliche Ordner – <Benutzername> → rechter Mausklick auf den öffentlichen Ordner → EigenschaftenBerechtigungen → das Konto Anonym wählen → SchreibenElemente erstellen (Create Items) die erforderliche Berechtigung erteilen. Weitere Informationen darüber sowie das Cmdlet für Exchange Online PowerShell findest Du in diesem Artikel:

    E-Mail-Aktivierung oder E-Mail-Deaktivierung eines öffentlichen Ordners in Exchange Online

    Gruß,

    Dimitar