Включить расширения IMAP
Поддержка расширений IMAP
Aspose.Email API предоставляет поддержку ряда расширений протокола 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)