IMAP-extensies inschakelen

Ondersteuning voor IMAP‑extensies

Aspose.Email‑API biedt ondersteuning voor een reeks IMAP‑protocolextensies. Deze extensies maken gevorderde bewerkingen mogelijk, zoals het identificeren van client‑applicaties en het ophalen van gedetailleerde mailbox‑metadata. Hoewel niet alle e‑mailservers deze functies ondersteunen, doen veel populaire diensten zoals Gmail dit wel.

Dit artikel toont hoe je de volgende IMAP‑extensies gebruikt met de ImapClient klasse in Aspose.Email:

  • IMAP ID‑commando

  • IMAP LIST-EXTENDED‑commando

Het gebruiken van het IMAP ID‑commando

Dit commando geeft feedback over of de server de IMAP ID‑extensie ondersteunt en retourneert gestructureerde identificatiedetails van de server. Dit kan nuttig zijn voor logboekregistratie, diagnostiek en het aanpassen van servergedrag.

De volgende codevoorbeeld toont hoe je de Aspose.Email‑bibliotheek gebruikt om met een IMAP‑server te communiceren, specifiek om serveridentificatie‑informatie op te halen met het ID‑commando:

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)

Het gebruiken van het IMAP LIST-EXTENDED-commando

Het IMAP LIST-EXTENDED-commando (gedefinieerd in RFC 5258) stelt clients in staat gedetailleerde mappenhiërarchieën en metadata op te halen, zoals of mappen onderliggende mappen hebben. Dit is vooral handig voor clients die complexe mailbox‑structuren beheren.

De volgende codevoorbeeld toont hoe je mappen in Gmail kunt weergeven met het uitgebreide LIST-commando en verifieert welke mappen submappen bevatten:

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)