Активиране на разширения за 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)