Povolit rozšíření IMAP

Podpora rozšíření IMAP

API Aspose.Email poskytuje podporu pro řadu rozšíření protokolu IMAP. Tato rozšíření umožňují pokročilé operace, jako je identifikace klientských aplikací a získávání podrobných metadat poštovní schránky. Přestože ne všechny e‑mailové servery tyto funkce podporují, mnoho populárních služeb, jako je Gmail, ano.

Tento článek ukazuje, jak použít následující rozšíření IMAP s ImapClient třída v Aspose.Email:

  • Příkaz IMAP ID

  • Příkaz IMAP LIST-EXTENDED

Použití příkazu IMAP ID

Tento příkaz poskytuje informaci, zda server podporuje rozšíření IMAP ID, a vrací strukturované identifikační údaje ze serveru. To může být užitečné pro logování, diagnostiku a přizpůsobení chování serveru.

Následující ukázka kódu demonstruje, jak použít knihovnu Aspose.Email pro komunikaci s IMAP serverem, konkrétně k získání informací o identifikaci serveru pomocí příkazu ID:

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)

Použití příkazu IMAP LIST-EXTENDED

Příkaz IMAP LIST-EXTENDED (definovaný v RFC 5258) umožňuje klientům získat podrobné hierarchie složek a metadata, například zda mají složky podřízené složky. To je zvláště užitečné pro klienty spravující složité struktury poštovních schránek.

Následující ukázka kódu demonstruje, jak vypsat složky v Gmailu pomocí rozšířeného příkazu LIST a ověřit, které složky obsahují podsložky:

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)