Se connecter au serveur SMTP
Se connecter au serveur SMTP avec SSL
Pour établir une connexion sécurisée avec un serveur SMTP qui prend en charge SSL, vous devez configurer les propriétés clés suivantes du SmtpClient classe:
-
Hôte : L’adresse du serveur SMTP (p. ex., smtp.gmail.com)
-
Port : Le port utilisé pour les communications avec SSL activé (généralement 465 pour SSL implicite ou 587 pour SSL/TLS explicite)
-
Nom d’utilisateur : Le nom du compte utilisé pour l’authentification
-
Mot de passe : Le mot de passe du compte SMTP
-
Options de sécurité : Le type de chiffrement à utiliser (SSLEXPLICIT, SSLIMPLICIT, etc.)
L’exemple de code suivant montre comment configurer et se connecter à un serveur SMTP avec SSL activé :
Définir un délai d’attente pour la réponse de salutation du serveur
Lors de l’établissement d’une connexion avec un serveur SMTP, le serveur envoie généralement une chaîne de salutation après une connexion réussie. Cette réponse confirme que le serveur est prêt à poursuivre la communication.
Dans certains scénarios, les clients de messagerie fonctionnent en mode connexion automatique, essayant plusieurs combinaisons de protocoles de sécurité et de ports (comme SSL implicite ou STARTTLS) pour établir une connexion réussie. Si la configuration du client ne correspond pas au mode de sécurité attendu par le serveur, le serveur n’envoie pas la chaîne de salutation. Cette discordance oblige le client à attendre que le délai d’attente général expire avant d’essayer la combinaison suivante — ce qui entraîne une gestion lente des connexions.
Pour améliorer ce comportement, Aspose.Email fournit le greeting_timeout propriété dans le SmtpClient classe. Cette propriété définit un délai d’attente spécifique (en millisecondes) pour attendre la chaîne de salutation du serveur. Si la salutation n’est pas reçue dans l’intervalle spécifié, le client tente immédiatement la configuration de connexion suivante — accélérant considérablement les processus de connexion automatiques.
L’exemple de code suivant montre comment implémenter la propriété dans un projet :
import aspose.email as ae
client = ae.clients.smtp.SmtpClient("localhost", 25, "username", "password")
client.greeting_timeout = 4000
Envoyer des e-mails via SMTP en utilisant un proxy SOCKS
Aspose.Email prend en charge les versions 4, 4a et 5 du protocole proxy SOCKS. L’exemple de code suivant montre comment envoyer un e-mail en utilisant SMTP avec un 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)"))
Envoyer des e-mails via SMTP en utilisant un proxy HTTP
L’exemple de code ci-dessous montre l’utilisation d’un proxy HTTP pour envoyer un e-mail via un serveur 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"))
Sélectionner les méthodes d’authentification SMTP prises en charge en Python
Pour garantir une connexion sécurisée et compatible à un serveur SMTP, il est important d’utiliser une méthode d’authentification prise en charge à la fois par le client et le serveur. Aspose.Email pour Python via .NET fournit des fonctionnalités intégrées propriétés pour gérer cela :
-
supported_authentication— récupère une liste des méthodes d’authentification prises en charge par le serveur SMTP. -
allowed_authentication— obtient ou définit les méthodes d’authentification que le client est autorisé à utiliser.
En utilisant ces propriétés, les développeurs peuvent aligner les capacités du client avec les exigences du serveur et éviter les échecs d’authentification lors du processus de connexion.
L’extrait de code suivant montre comment spécifier la méthode d’authentification SMTP autorisée en utilisant le allowed_authentication propriété :
client.allowed_authentication = ae.clients.smtp.SmtpKnownAuthenticationType.LOGIN
Définir le délai d’attente du serveur SMTP
Lors de l’envoi d’e-mails sur un réseau, définir un délai d’attente approprié est essentiel pour empêcher votre application de se bloquer si le serveur ne répond pas. Le timeout propriété du SmtpClient classe dans Aspose.Email pour Python via .NET vous permet de définir le temps d’attente maximal (en millisecondes) pour les réponses du serveur.
Cette propriété s’applique aux opérations telles que l’établissement d’une connexion ou l’envoi de commandes SMTP. Si le serveur ne répond pas dans le délai spécifié, le client lève une exception de délai d’attente, vous aidant à gérer plus efficacement les serveurs non réactifs.
Utilisez l’extrait de code suivant pour définir le délai d’attente de la réponse du serveur :
import aspose.email as ae
client = ae.clients.smtp.SmtpClient("host", 587, "username", "password", ae.clients.SecurityOptions.SSL_EXPLICIT)
# 60 seconds
client.timeout = 60000
Activer le chiffrement TLS pour des connexions SMTP sécurisées
Aspose.Email prend en charge la communication sécurisée avec les serveurs SMTP en utilisant les protocoles cryptographiques SSL et TLS. Ces protocoles aident à protéger les données échangées entre votre application et le serveur de messagerie, garantissant confidentialité et intégrité lors de la transmission.
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.
L’exemple de code suivant montre comment définir TLS 1.3 pour la communication 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
Utilisation du mécanisme CRAM-MD5 pour l’authentification
Aspose.Email pour Python via .NET prend en charge le mécanisme d’authentification CRAM-MD5, qui améliore la sécurité en évitant la transmission de mots de passe en texte clair lors de l’authentification SMTP. Cette méthode est particulièrement utile lors de la connexion à des serveurs qui nécessitent une authentification challenge‑response.
Pour activer l’authentification CRAM-MD5, définissez le allowed_authentication propriété du SmtpClient classe vers CRAM_MD5, comme le montre l’exemple de code suivant :
client.allowed_authentication = ae.clients.smtp.SmtpKnownAuthenticationType.CRAM_MD5