فعالسازی افزونههای 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)