Увімкнути розширення IMAP

Підтримка розширень IMAP

API Aspose.Email підтримує низку розширень протоколу IMAP. Ці розширення дозволяють виконувати розширені операції, такі як ідентифікація клієнтських застосунків та отримання детальних метаданих поштової скриньки. Хоча не всі поштові сервери підтримують ці функції, багато популярних сервісів, зокрема Gmail, їх підтримують.

У цій статті продемонстровано, як використовувати наступні розширення IMAP з ImapClient клас у Aspose.Email:

  • Команда IMAP ID

  • Команда IMAP LIST-EXTENDED

Використання команди IMAP ID

Ця команда повідомляє, чи підтримує сервер розширення IMAP ID, і повертає структуровану ідентифікаційну інформацію сервера. Це може бути корисно для журналювання, діагностики та налаштування поведінки сервера.

Нижче наведений приклад коду демонструє, як використовувати бібліотеку Aspose.Email для взаємодії з сервером IMAP, зокрема для отримання інформації ідентифікації сервера за допомогою команди 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)

Використання команди IMAP LIST-EXTENDED

Команда IMAP LIST-EXTENDED (визначена в RFC 5258) дозволяє клієнтам отримувати детальні ієрархії папок та метадані, наприклад, чи мають папки дочірні папки. Це особливо корисно для клієнтів, які керують складними структурами поштових скриньок.

Нижче наведений приклад коду демонструє, як отримати список папок у Gmail за допомогою розширеної команди LIST і перевірити, які папки містять підпапки:

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)