Aktivera IMAP‑tillägg

Stöd för IMAP‑tillägg

Aspose.Email‑API erbjuder stöd för ett antal IMAP‑protokolltillägg. Dessa tillägg möjliggör avancerade operationer såsom identifiering av klientapplikationer och hämtning av detaljerad brevlådemetadata. Även om inte alla e‑postservrar stödjer dessa funktioner, gör många populära tjänster som Gmail det.

Den här artikeln visar hur man använder följande IMAP‑tillägg med ImapClient klass i Aspose.Email:

  • IMAP‑ID‑kommando

  • IMAP‑kommandot LIST-EXTENDED

Använda IMAP‑ID‑kommandot

Detta kommando ger feedback om servern stöder IMAP‑ID‑tillägget och returnerar strukturerade identifieringsdetaljer från servern. Detta kan vara användbart för loggning, diagnostik och anpassning av serverbeteende.

Följande kodexempel visar hur man använder Aspose.Email‑biblioteket för att interagera med en IMAP‑server, specifikt för att hämta serveridentifieringsinformation med ID‑kommandot:

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)

Använda IMAP‑kommandot LIST-EXTENDED

IMAP‑kommandot LIST-EXTENDED (definierat i RFC 5258) låter klienter hämta detaljerade mapphierarkier och metadata, såsom om mappar har underliggande mappar. Detta är särskilt användbart för klienter som hanterar komplexa brevlådestrukturer.

Följande kodexempel demonstrerar hur man listar mappar i Gmail med det utökade LIST‑kommandot och verifierar vilka mappar som innehåller undermappar:

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)