Увімкнути розширення IMAP
Підтримка розширень IMAP
API Aspose.Email підтримує низку розширень протоколу IMAP. Ці розширення дозволяють виконувати розширені операції, такі як ідентифікація клієнтських застосунків та отримання детальних метаданих поштової скриньки. Хоча не всі поштові сервери підтримують ці функції, багато популярних сервісів, зокрема Gmail, їх підтримують.
У цій статті продемонстровано, як використовувати наступні розширення 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) дозволяє клієнтам отримувати детальні ієрархії папок та метадані, наприклад, чи мають папки дочірні папки. Це особливо корисно для клієнтів, які керують складними структурами поштових скриньок.
Нижче наведений приклад коду демонструє, як отримати список папок у Gmail за допомогою розширеної команди 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)