Verwalten von Gmail‑Nachrichten mit IGmailClient in Python

Aspose.Email für Python via .NET bietet erweiterte Möglichkeiten zur Arbeit mit Gmail‑Konten über die IGmailClient Klasse. Diese umfasst das Auflisten, Senden, Anhängen, Abrufen und Löschen von Nachrichten sowie die Verwaltung von Gmail‑Filtern.

Vor der Verwendung von IGmailClient, authentifizieren Sie sich mit Ihrer Client‑ID, Client‑Secret, dem Refresh‑Token und der E‑Mail‑Adresse. Erstellen Sie anschließend eine Gmail‑Client‑Instanz:

from aspose.email.clients.google import GmailClient

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

E‑Mail mit der Gmail‑API senden

Um eine E‑Mail mit Anhang über ein Gmail‑Konto zu senden, verwenden Sie die send_message Methode des IGmailClient Klasse.

Das folgende Codebeispiel zeigt, wie man mit der Gmail‑API eine E‑Mail mit Anhang erstellt und sendet:

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}")

Nachricht zu einem Gmail‑Ordner hinzufügen

Um Nachrichten direkt zu einem Gmail‑Postfach hinzuzufügen und die Standardklassifizierung zu umgehen, verwenden Sie die folgenden Methoden:

Das nachstehende Codebeispiel zeigt, wie man eine E‑Mail‑Nachricht erstellt und sie mit einem bestimmten Label über den Gmail‑Client an den Posteingang des Empfängers anhängt:

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}")

Gmail‑Nachrichten auflisten

Sie können eine Liste aller Nachrichten in einem Gmail‑Postfach mit der list_messages() Methode des IGmailClient Klasse. Jeder Eintrag in der zurückgegebenen Liste ist ein GmailMessageInfo Objekt, das leichte Metadaten wie ‘id’ und ’thread_id’ enthält.

Das nachstehende Codebeispiel zeigt, wie man Informationen zu allen Gmail‑Nachrichten im Posteingang des Benutzers abruft und anzeigt:

# 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}")

Gmail‑Nachrichteninhalt abrufen

Nach dem Abrufen der Nachricht‑Metadaten verwenden Sie fetch_message(message_id) um den gesamten Inhalt einer bestimmten Nachricht als MailMessage Objekt. Dies ermöglicht den Zugriff auf Betreff, Body, Anhänge und weitere Nachrichten‑Details.

Das nachstehende Codebeispiel zeigt, wie man den Inhalt der ersten drei Gmail‑Nachrichten aus dem Posteingang des Benutzers abruft und anzeigt:

# 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)

Gmail-Nachrichten löschen

Verwenden Sie die delete_message(message_id, move_to_trash) Methode des IGmailClient Klasse zum Löschen einer Nachricht. Sie können sie entweder in den Papierkorb verschieben (nicht dauerhaft) oder sofort und dauerhaft löschen, indem Sie den zweiten Parameter weglassen oder False übergeben.

Das folgende Codebeispiel demonstriert, wie die ersten drei Nachrichten aus einer Nachrichtenliste (z. B. E‑Mails) in den Papierkorb verschoben werden:

# 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.")

Gmail-Filter verwalten

Aspose.Email für Python bietet die folgenden Methoden der IGmailClient Klasse zur Automatisierung des Prozesses, einen Filter einzurichten, um eingehende E‑Mails basierend auf ihrer Betreffzeile zu organisieren und vorhandene Filter in einem Google‑E‑Mail‑Konto zu verwalten:

  • list_filters() - Ruft alle im Postfach angewendeten Filter ab.
  • create_filter(filter) - Fügt einen neuen Filter mit benutzerdefinierten Kriterien und Aktionen hinzu.
  • get_filter(id) - Ruft Details zu einem bestimmten Filter ab.
  • delete_filter(id) - Entfernt Filter dauerhaft.

Gmail-Filter erstellen und auflisten

Das folgende Codebeispiel zeigt, wie ein E‑Mail‑Filter mit der Aspose.Email‑Bibliothek speziell für Google‑Clients erstellt und verwaltet wird:

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}")

Gmail-Filter löschen

Das folgende Codebeispiel zeigt, wie alle Filter aus dem Gmail‑Konto entfernt werden:

filters = client.list_filters()

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