Activer les extensions IMAP

Prise en charge des extensions IMAP

L’API Aspose.Email prend en charge un éventail d’extensions du protocole IMAP. Ces extensions permettent des opérations avancées comme l’identification des applications clientes et la récupération de métadonnées détaillées de la boîte aux lettres. Bien que tous les serveurs de messagerie ne prennent pas en charge ces fonctionnalités, de nombreux services populaires comme Gmail le font.

Cet article montre comment utiliser les extensions IMAP suivantes avec le ImapClient classe dans Aspose.Email :

  • Commande IMAP ID

  • Commande IMAP LIST-EXTENDED

Utilisation de la commande IMAP ID

Cette commande indique si le serveur prend en charge l’extension IMAP ID et renvoie des détails d’identification structurés provenant du serveur. Cela peut être utile pour la journalisation, le diagnostic et la personnalisation du comportement du serveur.

L’exemple de code suivant montre comment utiliser la bibliothèque Aspose.Email pour interagir avec un serveur IMAP, en particulier pour récupérer les informations d’identification du serveur à l’aide de la commande 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)

Utilisation de la commande IMAP LIST-EXTENDED

La commande IMAP LIST-EXTENDED (définie dans la RFC 5258) permet aux clients de récupérer des hiérarchies de dossiers détaillées et des métadonnées, comme le fait que les dossiers aient des sous‑dossiers. Cela est particulièrement utile pour les clients gérant des structures de boîte aux lettres complexes.

L’exemple de code suivant montre comment lister les dossiers dans Gmail en utilisant la commande LIST étendue et vérifier quels dossiers contiennent des sous‑dossiers :

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)