Dans divers cas, les serveurs de messagerie sont accessibles depuis les applications Python pour lire les e-mails ou pour implémenter des clients de messagerie. Pour récupérer des e-mails à partir d’un serveur de messagerie, le protocole Internet Message Access Protocol (IMAP) est couramment utilisé. Dans cet article, nous allons vous montrer comment lire les e-mails d’un serveur en utilisant IMAP en Python. L’article expliquera explicitement comment se connecter à un serveur de messagerie, accéder au dossier souhaité et lire les e-mails.
- Bibliothèque Python pour lire les e-mails à l’aide d’IMAP
- Se connecter à un serveur IMAP en Python
- Accéder aux dossiers de messagerie à partir de la boîte aux lettres
- Lire les e-mails d’un dossier
Bibliothèque Python pour lire les e-mails à l’aide d’IMAP
Pour lire les e-mails du serveur de messagerie via IMAP, nous utiliserons Aspose.Email for Python via .NET. Il s’agit d’une puissante bibliothèque de messagerie qui vous permet d’envoyer des e-mails et d’accéder aux boîtes aux lettres à partir de serveurs de messagerie. Vous pouvez installer la bibliothèque à partir de PyPI à l’aide de la commande suivante.
pip install Aspose.Email-for-Python-via-NET
Pour une installation manuelle à l’aide d’un fichier .whl, vous pouvez suivre les étapes ci-dessous.
- Téléchargez le fichier installable .whl à partir de la section downloads.
- Depuis la ligne de commande, utilisez la commande : pip install «FileName> >.whl pour installer la bibliothèque.
Connectez-vous au serveur de messagerie via IMAP en Python
Voici les étapes pour se connecter à un serveur de messagerie en utilisant IMAP.
- Créez une instance de la classe ImapClient et initialisez-la avec le nom d’hôte, le port, le nom d’utilisateur et le mot de passe.
- Utilisez l’objet ImapClient pour accéder à la boîte aux lettres.
L’exemple de code suivant montre comment se connecter à un serveur de messagerie à l’aide d’IMAP en Python.
from aspose.email import SecurityOptions, ImapClient
# create an instance of ImapClient and provide host, port, username and password
client = ImapClient("imap.domain.com", 993, "user@domain.com", "password")
# set security options
client.security_options = SecurityOptions.SSLIMPLICIT
# use ImapClient object to access mailbox
Accéder aux dossiers de messagerie à partir de la boîte aux lettres en Python
Une fois que vous avez établi la connexion au serveur de messagerie, vous pouvez choisir le dossier à partir duquel vous souhaitez lire les messages électroniques. Voyons d’abord comment obtenir la liste de tous les dossiers de la boîte aux lettres. Voici les étapes pour obtenir des informations sur chaque dossier.
- Créez une instance de la classe ImapClient et initialisez-la avec le nom d’hôte, le port, le nom d’utilisateur et le mot de passe.
- Utilisez la méthode ImapClient.listfolders() pour obtenir la collection de dossiers dans un objet.
- Parcourez la collection et récupérez les détails des dossiers.
L’exemple de code suivant montre comment imprimer les détails des dossiers dans une boîte aux lettres.
from aspose.email import ImapClient
# create an instance of ImapClient and provide host, port, username and password
with ImapClient("imap.gmail.com", 993, "username", "password") as client:
# get list of folders
folderInfoColl = client.list_folders()
# iterate through the collection to get folders' info one by one
for folderInfo in folderInfoColl:
print("Folder name is " + folderInfo.name)
folderExtInfo = client.get_folder_info(folderInfo.name)
print("New message count: " + str(folderExtInfo.new_message_count))
print("Is it readonly? " + str(folderExtInfo.read_only))
print("Total number of messages " + str(folderExtInfo.total_message_count))
Passons maintenant à l’accès à un dossier particulier dans la boîte aux lettres en utilisant IMAP.
- Créez une instance de la classe ImapClient et initialisez-la avec le nom d’hôte, le port, le nom d’utilisateur et le mot de passe.
- Utilisez la méthode ImapClient.selectfolder(string) pour sélectionner le dossier.
L’exemple de code suivant montre comment sélectionner un dossier de messagerie dans la boîte aux lettres.
from aspose.email import ImapClient
# create an instance of ImapClient and provide host, port, username and password
with ImapClient("imap.gmail.com", 993, "username", "password") as client:
# select the folder from mailbox
client.select_folder("Inbox")
Lire les e-mails d’un dossier en Python
Voici les étapes pour lire les messages électroniques d’un dossier particulier dans la boîte aux lettres à l’aide de Python.
- Créez une instance de la classe ImapClient et initialisez-la avec le nom d’hôte, le port, le nom d’utilisateur et le mot de passe.
- Utilisez la méthode ImapClient.selectfolder(string) pour sélectionner le dossier.
- Obtenez la liste des messages dans le dossier à l’aide de la méthode client.listmessages().
- Parcourez la collection de messages.
- Obtenez les détails de chaque message électronique et enregistrez-le sur le disque si nécessaire.
L’exemple de code suivant montre comment lire des e-mails à partir d’un serveur de messagerie en Python.
from aspose.email import ImapClient
# create an instance of ImapClient and provide host, port, username and password
with ImapClient("imap.gmail.com", 993, "username", "password") as client:
# select folder
client.select_folder("Inbox")
# read each message in collection
for msg in client.list_messages():
print( "From: '{}', MIME Id: {}".format(msg.from_address, msg.message_id) )
# save message on disk
client.save_message(msg.unique_id, msg.unique_id + "_out.eml")
Obtenez une licence API gratuite
Vous pouvez utiliser gratuitement Aspose.Email for Python via .NET en obtenant une licence temporaire.
Conclusion
Dans cet article, vous avez appris à lire les e-mails d’un serveur de messagerie à l’aide d’IMAP en Python. Les exemples de code ont montré comment se connecter à un serveur de messagerie, obtenir la liste des dossiers de la boîte aux lettres, sélectionner un dossier et lire les e-mails. De plus, vous pouvez visiter documentation pour en savoir plus sur Aspose.Email for Python via .NET. Vous pouvez également télécharger le package complet d’exemples de code source à partir de GitHub. Si vous avez des questions ou des requêtes, n’hésitez pas à nous le faire savoir via notre forum.