Ativar Extensões IMAP
Suporte a Extensões IMAP
A API Aspose.Email oferece suporte a uma variedade de extensões do protocolo IMAP. Essas extensões permitem operações avançadas, como identificar aplicativos clientes e recuperar metadados detalhados da caixa de correio. Embora nem todos os servidores de e‑mail suportem esses recursos, muitos serviços populares como o Gmail suportam.
Este artigo demonstra como usar as seguintes extensões IMAP com o ImapClient classe em Aspose.Email:
-
Comando IMAP ID
-
Comando IMAP LIST-EXTENDED
Usando o Comando IMAP ID
Este comando fornece feedback sobre se o servidor suporta a extensão IMAP ID e retorna detalhes de identificação estruturados do servidor. Isso pode ser útil para registro, diagnóstico e personalização do comportamento do servidor.
O exemplo de código a seguir demonstra como usar a biblioteca Aspose.Email para interagir com um servidor IMAP, especificamente para obter informações de identificação do servidor usando o comando 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)
Usando o Comando IMAP LIST-EXTENDED
O comando IMAP LIST-EXTENDED (definido na RFC 5258) permite que clientes obtenham hierarquias detalhadas de pastas e metadados, como se as pastas possuem subpastas. Isso é especialmente útil para clientes que gerenciam estruturas de caixa de correio complexas.
O exemplo de código a seguir demonstra como listar pastas no Gmail usando o comando LIST estendido e verificar quais pastas contêm subpastas:
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)