Connetti ai server IMAP in Python
Aspose.Email per Python via .NET include il ImapClient classe, che consente agli sviluppatori di connettersi ai server di posta usando IMAP (Internet Message Access Protocol). Questa classe permette una gestione sicura ed efficiente delle email nelle applicazioni Python, includendo il recupero, la lettura, lo spostamento, l’eliminazione e l’aggiornamento dei messaggi.
Utilizzando il client IMAP, è possibile autenticare gli utenti, gestire le cartelle della casella, connettersi tramite SSL, impostare timeout personalizzati e accedere agli account email tramite server proxy o autenticazione CRAM-MD5.
Connessione IMAP di base
Per connettersi a un server IMAP usando Aspose.Email, segui questi tre semplici passaggi:
- Crea un’istanza di ImapClient classe.
- Specifica il nome host, la porta, il nome utente e la password.
- Specifica l’opzione di sicurezza desiderata.
Il seguente esempio di codice mostra come connettersi al server IMAP in modo programmatico:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")
Abilita SSL per le connessioni IMAP
Per connettersi a un server IMAP con SSL abilitato, imposta il security_options proprietà per SSLImplicit:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")
# Set the security mode to implicit
client.security_options = ae.clients.SecurityOptions.SSL_EXPLICIT
Connetti tramite proxy SOCKS
Aspose.Email supporta le versioni SOCKS 4, 4a e 5 per connessioni tramite proxy. Usa i seguenti passaggi per connetterti tramite un proxy SOCKS:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", "username", "password")
client.security_options = ae.clients.SecurityOptions.AUTO
proxy = ae.clients.SocksProxy("192.168.203.142", 1080, ae.clients.SocksVersion.SOCKS_V5)
client.proxy = proxy
client.select_folder("Inbox")
Connessione al server tramite proxy HTTP
Aspose.Email consente inoltre connessioni IMAP tramite un proxy HTTP:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", "username", "password")
client.proxy = ae.clients.HttpProxy("18.222.124.59", 8080)
client.select_folder("Inbox")
Accesso in sola lettura alla casella di posta
Per impedire modifiche al contenuto della casella, abilita la modalità di sola lettura. La read_only impostare la proprietà su True indica che le modifiche non sono consentite. Il seguente esempio di codice mostra come usare questa proprietà in un progetto:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")
client.security_options = ae.clients.SecurityOptions.SSL_EXPLICIT
client.read_only = True
Usa l’autenticazione CRAM-MD5
Per una maggiore sicurezza, configura il client per usare l’autenticazione CRAM-MD5:
Il seguente esempio di codice dimostra come configurare il client per accettare CRAM-MD5 come uno dei metodi di autenticazione supportati per la connessione a un server IMAP:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")
client.allowed_authentication = ae.clients.imap.ImapKnownAuthenticationType.CRAM_MD5
Imposta timeout operazione
Impedisci al client di attendere indefinitamente impostando un timeout (in millisecondi):
Il seguente frammento di codice mostra come impostare un periodo di timeout di 60.000 millisecondi (60 secondi) affinché il client attenda la risposta del server:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd", ae.clients.SecurityOptions.SSL_IMPLICIT)
# 60 seconds
client.timeout = 60000
Imposta timeout di saluto
Controlla quanto tempo il client attende durante lo handshake iniziale con il server di posta.
Il seguente frammento di codice mostra come limitare il timeout di saluto usando la proprietà greeting_timeout della ImapClient classe:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")
client.greeting_timeout = 4000
client.select_folder(ae.clients.imap.ImapFolderInfo.IN_BOX)
Usa TLS con il client IMAP
Aspose.Email supporta TLS e SSL per comunicazioni sicure. Usa il supported_encryption proprietà per definire le versioni di protocollo accettabili.
NOTA: è possibile impostare solo le versioni del protocollo supportate da .NET Framework. Se alcune versioni del protocollo non sono supportate dalla tua versione corrente di .NET Framework, verranno ignorate e omesse. Ciò può portare a un livello di sicurezza TLS inferiore. In questo caso, non verranno generate eccezioni. Usa il metodo ‘set_supported_encryption_unsafe(value)’ se desideri impostare i protocolli senza controlli di compatibilità.
L’esempio di codice seguente ti mostra come impostare TLS 1.3 per ImapClient istanza di classe.
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd", ae.clients.SecurityOptions.SSL_IMPLICIT)
client.supported_encryption = ae.clients.base.EncryptionProtocols.TLS13
Nel caso in cui un protocollo di crittografia specificato non sia supportato nella versione corrente di .NET Framework, la differenza di comportamento tra il metodo set_supported_encryption_unsafe(value) e la proprietà supported_encryption è la seguente:
- Se viene usata la proprietà supported_encryption, il client email declassa il protocollo di crittografia a un livello supportato.
- Se viene usato il metodo set_supported_encryption_unsafe(value), il client email genera eccezioni.
Convalida le credenziali del server IMAP
Per stabilire una connessione sicura a un server IMAP prima di eseguire ulteriori azioni, le credenziali dell’utente vengono verificate e validate. Il metodo validate_credentials della ImapClient la classe aiuta a verificare se nome utente e password forniti sono corretti. Se le credenziali sono valide, il client può autenticarsi con successo al server IMAP. Il seguente esempio di codice mostra come implementare questo metodo nel tuo progetto:
import aspose.email as ae
with ae.clients.imap.ImapClient("your imap server", 993, "your username", "your password", ae.clients.SecurityOptions.AUTO) as client:
client.timeout = 4000
if client.validate_credentials():
# Further actions
Abilita la registrazione delle attività IMAP
La registrazione delle attività prevede la registrazione delle connessioni al server, i dettagli di trasmissione dei messaggi inviati e ricevuti, i messaggi di errore durante l’elaborazione delle email e qualsiasi altra azione eseguita dal client o dal server. Per monitorare l’attività del client IMAP e le interazioni con il server, utilizza il seguente esempio di codice che usa la proprietà log_file_name della ImapClient classe per registrare le informazioni nel file di log specificato:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd", ae.clients.SecurityOptions.SSL_IMPLICIT)
# Set the path to the log file using the LogFileName property.
client.log_file_name = "C:\\Aspose.Email.IMAP.log"
# Set the UseDateInLogFileName property if it is necessary.
client.use_date_in_log_file_name = False