Gestion des messages Gmail avec IGmailClient en Python

Aspose.Email for Python via .NET offre des capacités étendues pour travailler avec des comptes Gmail via le IGmailClient classe. Cela inclut la liste, l’envoi, l’ajout, la récupération et la suppression de messages, ainsi que la gestion des filtres Gmail.

Avant d’utiliser IGmailClient, authentifiez-vous à l’aide de votre ID client, secret client, token d’actualisation et adresse e‑mail. Créez ensuite une instance du client Gmail :

from aspose.email.clients.google import GmailClient

client = GmailClient.get_instance(client_id, client_secret, refresh_token, email)

Envoyer un e‑mail en utilisant l’API Gmail

Pour envoyer un e‑mail avec une pièce jointe via un compte Gmail, utilisez le send_message méthode du IGmailClient classe.

L’exemple de code suivant montre comment créer et envoyer un e‑mail avec une pièce jointe en utilisant l’API Gmail :

from aspose.email import MailMessage, Attachment

# Create the message
message = MailMessage("sender@example.com", "recipient@example.com", "Weekly Report", "Attached is the weekly report.")

# Add an attachment
attachment_path = "path/to/report.pdf"
message.attachments.add(Attachment(attachment_path))

# Send the message
message_id = client.send_message(message)
print(f"Message with attachment sent! ID: {message_id}")

Ajouter un message à un dossier Gmail

Pour ajouter des messages directement à une boîte Gmail, en contournant la classification standard, utilisez les méthodes suivantes :

L’exemple de code ci-dessous montre comment créer un message électronique et l’ajouter à la boîte de réception du destinataire avec une étiquette spécifique à l’aide du client Gmail :

message = MailMessage("sender@example.com", "recipient@example.com", "Subject for inbox message", "Body of the message")

# Append the message to the inbox with a label
message_id = client.append_message(message, "INBOX")
print(f"Message appended to the Inbox. ID: {message_id}")

Lister les messages Gmail

Vous pouvez récupérer une liste de tous les messages d’une boîte Gmail en utilisant le list_messages() méthode du IGmailClient classe. Chaque élément de la liste retournée est un GmailMessageInfo objet contenant des métadonnées légères telles que ‘id’ et ’thread_id’.

L’exemple de code ci-dessous montre comment récupérer et afficher les informations sur tous les messages Gmail de la boîte de réception de l’utilisateur :

# List all Gmail messages
messages = client.list_messages()

# Print basic info for each message
for i, msg_info in enumerate(messages):
    print(f"Message {i + 1}: ID = {msg_info.id}, Thread ID = {msg_info.thread_id}")

Récupérer le contenu d’un message Gmail

Après avoir récupéré les métadonnées du message, utilisez fetch_message(message_id) pour télécharger le contenu complet d’un message spécifique en tant que MailMessage objet. Cela permet d’accéder à l’objet, au corps, aux pièces jointes et à d’autres détails du message.

L’exemple de code ci-dessous montre comment récupérer et afficher le contenu des trois premiers messages Gmail de la boîte de réception de l’utilisateur :

# Fetch and display content for the first 3 messages
for i in range(min(3, len(messages))):
    message = client.fetch_message(messages[i].id)
    print(f"Message {i + 1}")
    print("Subject:", message.subject)
    print("Body:", message.body)

Supprimer les messages Gmail

Utilisez le delete_message(message_id, move_to_trash) méthode du IGmailClient classe pour supprimer un message. Vous pouvez soit le déplacer vers la corbeille (non permanent), soit le supprimer immédiatement et définitivement en omettant le deuxième paramètre ou en passant False.

L’exemple de code ci‑dessous montre comment déplacer les trois premiers messages d’une liste de messages (comme des e‑mails) vers la corbeille :

# Move the first 3 messages to trash
for i in range(min(3, len(messages))):
    client.delete_message(messages[i].id, True)  # True = move to trash
    print(f"Message {i + 1} moved to trash.")

Gérer les filtres Gmail

Aspose.Email pour Python fournit les méthodes suivantes de la IGmailClient classe pour automatiser le processus de mise en place d’un filtre afin d’organiser les e‑mails entrants selon leur ligne d’objet et gérer les filtres existants dans un compte e‑mail Google :

  • list_filters() - Récupère tous les filtres appliqués à la boîte aux lettres.
  • create_filter(filter) - Ajoute un nouveau filtre avec des critères et des actions personnalisés.
  • get_filter(id) - Récupère les détails d’un filtre spécifique.
  • delete_filter(id) - Supprime les filtres de façon permanente.

Créer et lister les filtres Gmail

L’exemple de code suivant montre comment créer et gérer un filtre d’e‑mail en utilisant la bibliothèque Aspose.Email spécifiquement pour le client Google :

from aspose.email.clients.google.filters import Filter, Criteria, Action

# Create a new filter
filter_obj = Filter()
filter_obj.matching_criteria = Criteria()
filter_obj.matching_criteria.subject = "Important"

filter_obj.action = Action()
filter_obj.action.add_label_ids = ["IMPORTANT"]

# Create the filter
filter_id = client.create_filter(filter_obj)
print(f"Filter created! ID: {filter_id}")

# List all filters
filters = client.list_filters()
for f in filters:
    print(f"Filter ID: {f.id}")

Supprimer les filtres Gmail

L’exemple de code suivant montre comment supprimer tous les filtres du compte Gmail :

filters = client.list_filters()

# Delete each filter
for f in filters:
    client.delete_filter(f.id)
    print(f"Filter ID: {f.id} deleted.")