Активиране на разширения за 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)