Abilita estensioni IMAP
Supporto per le estensioni IMAP
L’API Aspose.Email fornisce supporto per una gamma di estensioni del protocollo IMAP. Queste estensioni consentono operazioni avanzate come l’identificazione delle applicazioni client e il recupero di metadati dettagliati della casella di posta. Sebbene non tutti i server email supportino queste funzionalità, molti servizi popolari come Gmail lo fanno.
Questo articolo dimostra come usare le seguenti estensioni IMAP con il ImapClient classe in Aspose.Email:
-
Comando IMAP ID
-
Comando IMAP LIST-EXTENDED
Utilizzo del comando IMAP ID
Questo comando fornisce un riscontro su se il server supporta l’estensione IMAP ID e restituisce dettagli di identificazione strutturati dal server. Può essere utile per il logging, la diagnostica e la personalizzazione del comportamento del server.
Il seguente esempio di codice dimostra come utilizzare la libreria Aspose.Email per interagire con un server IMAP, in particolare per recuperare le informazioni di identificazione del server usando il 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)
Utilizzo del comando IMAP LIST-EXTENDED
Il comando IMAP LIST-EXTENDED (definito nella RFC 5258) consente ai client di recuperare gerarchie di cartelle dettagliate e metadati, come se le cartelle hanno sottocartelle. È particolarmente utile per i client che gestiscono strutture di caselle di posta complesse.
Il seguente esempio di codice dimostra come elencare le cartelle in Gmail utilizzando il comando LIST esteso e verificare quali cartelle contengono sottocartelle:
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)