Włącz Rozszerzenia IMAP

Wsparcie Rozszerzeń IMAP

API Aspose.Email zapewnia wsparcie dla szeregu rozszerzeń protokołu IMAP. Rozszerzenia te umożliwiają zaawansowane operacje, takie jak identyfikacja aplikacji klienckich oraz pobieranie szczegółowych metadanych skrzynki pocztowej. Choć nie wszystkie serwery pocztowe obsługują te funkcje, wiele popularnych usług, takich jak Gmail, je obsługuje.

Ten artykuł demonstruje, jak używać następujących rozszerzeń IMAP wraz z ImapClient klasa w Aspose.Email:

  • Polecenie IMAP ID

  • Polecenie IMAP LIST-EXTENDED

Używanie Polecenia IMAP ID

To polecenie przekazuje informację, czy serwer obsługuje rozszerzenie IMAP ID i zwraca ustrukturyzowane szczegóły identyfikacyjne z serwera. Może to być przydatne do logowania, diagnostyki oraz dostosowywania zachowań serwera.

Poniższy przykład kodu demonstruje, jak używać biblioteki Aspose.Email do interakcji z serwerem IMAP, konkretnie aby pobrać informacje identyfikacyjne serwera przy użyciu polecenia 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)

Używanie Polecenia IMAP LIST-EXTENDED

Polecenie IMAP LIST-EXTENDED (zdefiniowane w RFC 5258) umożliwia klientom pobieranie szczegółowych hierarchii folderów oraz metadanych, takich jak informacja, czy foldery mają podfoldery. Jest to szczególnie przydatne dla klientów zarządzających złożonymi strukturami skrzynek pocztowych.

Poniższy przykład kodu demonstruje, jak wylistować foldery w Gmailu przy użyciu rozszerzonego polecenia LIST oraz sprawdzić, które foldery zawierają podfoldery:

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)