فعال‌سازی افزونه‌های IMAP

پشتیبانی از افزونه‌های IMAP

API Aspose.Email پشتیبانی از مجموعه‌ای از افزونه‌های پروتکل IMAP را فراهم می‌کند. این افزونه‌ها عملیات پیشرفته‌ای مانند شناسایی برنامه‌های کلاینت و بازیابی متادیتای دقیق صندوق‌پست را امکان‌پذیر می‌سازند. اگرچه تمام سرورهای ایمیل این امکانات را ندارند، بسیاری از سرویس‌های محبوب مانند جیمیل این ویژگی‌ها را پشتیبانی می‌کنند.

این مقاله نشان می‌دهد که چگونه از افزونه‌های 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) به کلاینت‌ها امکان می‌دهد سلسله مراتب دقیق پوشه‌ها و متادیتاها را بازیابی کنند، مانند این که آیا پوشه‌ها زیرپوشه دارند یا خیر. این به‌ویژه برای کلاینت‌هایی که ساختارهای پیچیده صندوق‌پست را مدیریت می‌کنند، مفید است.

نمونه کد زیر نشان می‌دهد که چگونه می‌توان پوشه‌ها را در جیمیل با استفاده از دستور 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)