IMAP-Erweiterungen aktivieren

Unterstützung von IMAP‑Erweiterungen

Die Aspose.Email‑API unterstützt eine Reihe von IMAP‑Protokollerweiterungen. Diese Erweiterungen ermöglichen fortgeschrittene Vorgänge wie die Identifikation von Client‑Anwendungen und das Abrufen detaillierter Postfach‑Metadaten. Während nicht alle E‑Mail‑Server diese Funktionen unterstützen, tun dies viele beliebte Dienste wie Gmail.

Dieser Artikel zeigt, wie die folgenden IMAP‑Erweiterungen mit dem verwendet werden können ImapClient Klasse in Aspose.Email:

  • IMAP ID‑Befehl

  • IMAP LIST‑EXTENDED‑Befehl

Verwendung des IMAP ID‑Befehls

Dieser Befehl gibt Rückmeldung darüber, ob der Server die IMAP‑ID‑Erweiterung unterstützt, und liefert strukturierte Identifikationsdetails vom Server. Das kann für Protokollierung, Diagnose und Anpassung des Serververhaltens nützlich sein.

Das folgende Code‑Beispiel zeigt, wie die Aspose.Email‑Bibliothek verwendet wird, um mit einem IMAP‑Server zu interagieren, insbesondere um Server‑Identifikationsinformationen mit dem ID‑Befehl abzurufen:

import aspose.email as ae

with ae.clients.imap.ImapClient("imap.gmail.com", 993, "username", "password") as client:

    # Set security options
    client.security_options = ae.clients.SecurityOptions.AUTO

    # Check if ID command is supported
    print(client.id_supported)

    # Send identification info to the server
    server_identification_info1 = client.introduce_client()
    server_identification_info2 = client.introduce_client(ae.clients.imap.ImapIdentificationInfo.default_value)

    # Display server response
    print(server_identification_info1)
    print(server_identification_info2)
    print(server_identification_info1.name)
    print(server_identification_info1.vendor)
    print(server_identification_info1.support_url)
    print(server_identification_info1.version)

Verwendung des IMAP LIST‑EXTENDED‑Befehls

Der IMAP‑Befehl LIST-EXTENDED (definiert in RFC 5258) ermöglicht es Clients, detaillierte Ordnerhierarchien und Metadaten abzurufen, z. B. ob Ordner Unterordner besitzen. Dies ist besonders nützlich für Clients, die komplexe Postfachstrukturen verwalten.

Das folgende Code‑Beispiel demonstriert, wie man Ordner in Gmail mit dem erweiterten LIST‑Befehl auflistet und prüft, welche Ordner Unterordner enthalten:

import aspose.email as ae

with ae.clients.imap.ImapClient("imap.gmail.com", 993, "username", "password") as client:
    folder_info_col = client.list_folders("*")
    print("Extended List Supported:", client.extended_list_supported)

    for folder_info in folder_info_col:
        folder_name = folder_info.name

        if folder_name == "[Gmail]/All Mail":
            print("Has Children:", folder_info.has_children)
        elif folder_name == "[Gmail]/Bin":
            print("Bin has children?", folder_info.has_children)
        elif folder_name == "[Gmail]/Drafts":
            print("Drafts has children?", folder_info.has_children)
        elif folder_name == "[Gmail]/Important":
            print("Important has Children?", folder_info.has_children)
        elif folder_name == "[Gmail]/Sent Mail":
            print("Sent Mail has Children?", folder_info.has_children)
        elif folder_name == "[Gmail]/Spam":
            print("Spam has Children?", folder_info.has_children)
        elif folder_name == "[Gmail]/Starred":
            print("Starred has Children?", folder_info.has_children)