Connettiti al server SMTP

Connetti al server SMTP con SSL

Per stabilire una connessione sicura con un server SMTP che supporta SSL, è necessario configurare le seguenti proprietà chiave del SmtpClient classe:

  • Host: L’indirizzo del server SMTP (ad es., smtp.gmail.com)

  • Porta: La porta utilizzata per la comunicazione con SSL (tipicamente 465 per SSL implicito o 587 per SSL/TLS esplicito)

  • Nome utente: Il nome dell’account utilizzato per l’autenticazione

  • Password: La password per l’account SMTP

  • Opzioni di sicurezza: Il tipo di crittografia da utilizzare (SSLEXPLICIT, SSLIMPLICIT, ecc.)

Il seguente esempio di codice dimostra come configurare e connettersi a un server SMTP con supporto SSL:

Imposta un timeout per la risposta di benvenuto dal server

Durante l’instaurazione di una connessione con un server SMTP, il server tipicamente invia una stringa di benvenuto dopo una connessione riuscita. Questa risposta conferma che il server è pronto a procedere con la comunicazione.

In alcuni scenari, i client di posta operano in modalità connessione automatica, provando più combinazioni di protocolli di sicurezza e porte (come SSL implicito o STARTTLS) per stabilire una connessione riuscita. Se la configurazione del client non corrisponde alla modalità di sicurezza prevista dal server, il server non invierà la stringa di benvenuto. Questa discrepanza fa sì che il client attenda fino alla scadenza del timeout generale prima di provare la combinazione successiva — risultando in una gestione lenta della connessione.

Per migliorare questo comportamento, Aspose.Email fornisce il greeting_timeout proprietà nella SmtpClient classe. Questa proprietà imposta un timeout specifico (in millisecondi) per l’attesa della stringa di benvenuto del server. Se il greeting non viene ricevuto entro l’intervallo specificato, il client tenta immediatamente la configurazione successiva — velocizzando notevolmente i processi di connessione automatica.

Il seguente esempio di codice dimostra come implementare la proprietà in un progetto:

import aspose.email as ae

client = ae.clients.smtp.SmtpClient("localhost", 25, "username", "password")
client.greeting_timeout = 4000

Invia email tramite SMTP usando un proxy SOCKS

Aspose.Email fornisce supporto per le versioni 4, 4a e 5 del protocollo proxy SOCKS. Il seguente esempio di codice dimostra come inviare un’email usando SMTP con proxy SOCKS:

import aspose.email as ae

client = ae.clients.smtp.SmtpClient("smtp.domain.com", "username", "password")

client.security_options = ae.clients.SecurityOptions.SSL_IMPLICIT
# proxy address
proxy_address = "192.168.203.142"
#proxy port
proxy_port = 1080
socks_proxy = ae.clients.SocksProxy(proxy_address, proxy_port, ae.clients.SocksVersion.SOCKS_V5)
client.proxy = socks_proxy
client.send(ae.MailMessage("sender@domain.com", "receiver@domain.com", "Sending Email via proxy", "Implement socks proxy protocol for versions 4, 4a, 5 (only Username/Password authentication)"))

Invia email tramite SMTP usando un proxy HTTP

Il seguente esempio di codice dimostra l’uso di un proxy HTTP per inviare un’email tramite un server SMTP:

import aspose.email as ae

http_proxy = ae.clients.HttpProxy("18.222.124.59", 8080)
client = ae.clients.smtp.SmtpClient("host", 587, "username", "password")
client.proxy = http_proxy
client.send(ae.MailMessage("sender@domain.com", "receiver@domain.com", "Sending Email via proxy", "Body"))

Seleziona i metodi di autenticazione SMTP supportati in Python

Per garantire una connessione sicura e compatibile a un server SMTP, è importante utilizzare un metodo di autenticazione supportato sia dal client che dal server. Aspose.Email per Python via .NET fornisce integrato proprietà per gestire questo:

  • supported_authentication — recupera un elenco di metodi di autenticazione supportati dal server SMTP.

  • allowed_authentication — ottiene o imposta i metodi di autenticazione che il client è autorizzato a utilizzare.

Utilizzando queste proprietà, gli sviluppatori possono allineare le capacità del client ai requisiti del server ed evitare fallimenti di autenticazione durante il processo di connessione.

Il seguente frammento di codice dimostra come specificare il metodo di autenticazione SMTP consentito utilizzando il allowed_authentication proprietà:

client.allowed_authentication = ae.clients.smtp.SmtpKnownAuthenticationType.LOGIN

Imposta timeout server SMTP

Quando si inviano email tramite rete, impostare un timeout appropriato è essenziale per evitare che l’applicazione si blocchi se il server non risponde. Il timeout proprietà del SmtpClient classe in Aspose.Email per Python via .NET consente di definire il tempo massimo di attesa (in millisecondi) per le risposte del server.

Questa proprietà si applica a operazioni come l’instaurazione di una connessione o l’invio di comandi SMTP. Se il server non risponde entro la durata specificata, il client genera un’eccezione di timeout, aiutandoti a gestire i server non responsivi in modo più efficace.

Utilizza il seguente frammento di codice per impostare il timeout per la risposta del server:

import aspose.email as ae

client = ae.clients.smtp.SmtpClient("host", 587, "username", "password", ae.clients.SecurityOptions.SSL_EXPLICIT)
# 60 seconds
client.timeout = 60000

Abilita la crittografia TLS per connessioni SMTP sicure

Aspose.Email supporta la comunicazione sicura con i server SMTP utilizzando i protocolli crittografici SSL e TLS. Questi protocolli aiutano a proteggere i dati scambiati tra la tua applicazione e il server di posta, garantendo riservatezza e integrità durante la trasmissione.

NOTE: Only versions of SSL/TLS supported by your current Python framework can be applied. Unsupported protocol versions will be silently ignored without raising exceptions. If you need to bypass compatibility checks and explicitly set the encryption protocols, use the `set_supported_encryption_unsafe(value)` method of the [SmtpClient](https://reference.aspose.com/email/python-net/aspose.email.clients.smtp/smtpclient/#smtpclient-class) class.

Il seguente esempio di codice dimostra come impostare TLS 1.3 per la comunicazione SMTP:

import aspose.email as ae

client = ae.clients.smtp.SmtpClient("host", 587, "username", "password", ae.clients.SecurityOptions.SSL_EXPLICIT)
client.supported_encryption = ae.clients.base.EncryptionProtocols.TLS13

Utilizzo del meccanismo CRAM-MD5 per l’autenticazione

Aspose.Email per Python via .NET supporta il meccanismo di autenticazione CRAM-MD5, che migliora la sicurezza evitando la trasmissione di password in chiaro durante l’autenticazione SMTP. Questo metodo è particolarmente utile quando ci si connette a server che richiedono l’autenticazione challenge‑response.

Per abilitare l’autenticazione CRAM-MD5, impostare il allowed_authentication proprietà del SmtpClient classe a CRAM_MD5, come mostrato nel seguente esempio di codice:

client.allowed_authentication = ae.clients.smtp.SmtpKnownAuthenticationType.CRAM_MD5