Connexion aux serveurs IMAP en Python

Aspose.Email pour Python via .NET inclut le ImapClient classe, qui permet aux développeurs de se connecter aux serveurs de messagerie en utilisant l’IMAP (Internet Message Access Protocol). Cette classe permet une gestion sécurisée et efficace des e‑mails au sein d’applications Python, incluant la récupération, la lecture, le déplacement, la suppression et la mise à jour des messages.

Avec le client IMAP, vous pouvez authentifier les utilisateurs, gérer les dossiers de boîte aux lettres, vous connecter via SSL, définir des délais d’attente personnalisés et accéder aux comptes de messagerie via des serveurs proxy ou l’authentification CRAM‑MD5.

Connexion IMAP de base

Pour vous connecter à un serveur IMAP avec Aspose.Email, suivez ces trois étapes simples :

  1. Créez une instance de la ImapClient classe.
  2. Spécifiez le nom d’hôte, le port, le nom d’utilisateur et le mot de passe.
  3. Spécifiez l’option de sécurité souhaitée.

L’exemple de code ci‑dess dessous montre comment se connecter à un serveur IMAP de façon programmatique :

import aspose.email as ae

client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")

Activer SSL pour les connexions IMAP

Pour vous connecter à un serveur IMAP avec SSL, définissez le security_options propriété pour 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

Connexion via un proxy SOCKS

Aspose.Email prend en charge les versions SOCKS 4, 4a et 5 pour les connexions via proxy. Suivez les étapes suivantes pour vous connecter via 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")

Connexion au serveur via proxy HTTP

Aspose.Email permet également les connexions IMAP via 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")

Accès en lecture seule à la boîte aux lettres

Pour empêcher les modifications du contenu de la boîte aux lettres, activez le mode lecture seule. Le read_only Propriété définie sur True indique que les modifications ne sont pas autorisées. L’exemple de code suivant montre comment utiliser cette propriété dans un projet :

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

Utiliser l’authentification CRAM‑MD5

Pour une sécurité renforcée, configurez le client pour utiliser l’authentification CRAM‑MD5 :

L’exemple de code suivant montre comment configurer le client pour accepter CRAM‑MD5 comme l’une des méthodes d’authentification prises en charge pour se connecter à un serveur 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

Définir le délai d’attente d’opération

Empêchez le client d’attendre indéfiniment en définissant un délai d’attente (en millisecondes) :

Le fragment de code suivant montre comment définir une période d’attente de 60 000 millisecondes (60 secondes) pour que le client attende la réponse du serveur :

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

Définir le délai d’attente de salutation

Contrôlez la durée d’attente du client pendant la poignée de main initiale avec le serveur de messagerie.

Le fragment de code suivant montre comment restreindre le délai d’attente de salutation en utilisant la propriété greeting_timeout de la 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)

Utiliser TLS avec le client IMAP

Aspose.Email prend en charge TLS et SSL pour une communication sécurisée. Utilisez le supported_encryption propriété pour définir les versions de protocole acceptables.

NOTE : vous ne pouvez définir que les versions du protocole prises en charge par le .NET Framework. Si certaines versions du protocole ne sont pas prises en charge par votre version actuelle du .NET Framework, elles seront ignorées et sautées. Cela peut entraîner un rétrogradage du niveau de sécurité TLS. Dans ce cas, aucune exception ne sera générée. Veuillez utiliser la méthode ‘set_supported_encryption_unsafe(value)’ si vous souhaitez définir les protocoles sans aucune vérification de compatibilité.

L’exemple de code ci‑dessous vous montre comment définir TLS 1.3 pour ImapClient instance de 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

Dans le cas où un protocole de chiffrement spécifié n’est pas pris en charge dans la version actuelle du .NET Framework, la différence de comportement entre la méthode set_supported_encryption_unsafe(value) et la propriété supported_encryption est la suivante :

  • Si la propriété supported_encryption est utilisée, le client de messagerie rétrograde le protocole de chiffrement à un niveau pris en charge.
  • Si la méthode set_supported_encryption_unsafe(value) est utilisée, le client de messagerie génère des exceptions.

Valider les informations d’identification du serveur IMAP

Pour établir une connexion sécurisée à un serveur IMAP avant d’entreprendre d’autres actions, les identifiants de l’utilisateur sont vérifiés et validés. La méthode validate_credentials de la ImapClient classe aide à vérifier si le nom d’utilisateur et le mot de passe fournis sont corrects. Si les informations d’identification sont effectivement valides, le client peut s’authentifier avec succès auprès du serveur IMAP. L’exemple de code suivant montre comment implémenter cette méthode dans votre projet :

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

Activer la journalisation des activités IMAP

La journalisation des activités consiste à enregistrer les connexions au serveur, les détails de transmission des messages envoyés et reçus, les messages d’erreur lors du traitement des e‑mails, ainsi que toute autre action effectuée par le client ou le serveur. Pour suivre l’activité du client IMAP et ses interactions avec le serveur, utilisez l’exemple de code suivant qui utilise la propriété log_file_name de la ImapClient classe pour enregistrer les informations dans le fichier journal spécifié :

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