Habilitar extensiones IMAP

Soporte de extensiones IMAP

La API Aspose.Email brinda soporte para una variedad de extensiones del protocolo IMAP. Estas extensiones permiten operaciones avanzadas como identificar aplicaciones cliente y obtener metadatos detallados del buzón. Aunque no todos los servidores de correo soportan estas funciones, muchos servicios populares como Gmail sí lo hacen.

Este artículo demuestra cómo usar las siguientes extensiones IMAP con el ImapClient clase en Aspose.Email:

  • Comando IMAP ID

  • Comando IMAP LIST-EXTENDED

Usando el comando IMAP ID

Este comando brinda información sobre si el servidor soporta la extensión IMAP ID y devuelve detalles de identificación estructurados del servidor. Esto puede ser útil para registro, diagnóstico y personalización del comportamiento del servidor.

El siguiente ejemplo de código muestra cómo usar la biblioteca Aspose.Email para interactuar con un servidor IMAP, específicamente para obtener información de identificación del servidor usando el comando 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)

Usando el comando IMAP LIST-EXTENDED

El comando IMAP LIST-EXTENDED (definido en RFC 5258) permite a los clientes obtener jerarquías de carpetas detalladas y metadatos, como si las carpetas tienen subcarpetas. Esto es especialmente útil para clientes que gestionan estructuras de buzón complejas.

El siguiente ejemplo de código muestra cómo enumerar carpetas en Gmail usando el comando LIST extendido y verificar qué carpetas contienen subcarpetas:

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)