Gmail‑berichten beheren met IGmailClient in Python

Aspose.Email voor Python via .NET biedt uitgebreide mogelijkheden om met Gmail-accounts te werken via de IGmailClient klasse. Dit omvat het opsommen, verzenden, toevoegen, ophalen en verwijderen van berichten, evenals het beheren van Gmail-filters.

Voor gebruik van IGmailClient, authenticeren met je client-ID, client secret, refresh token en e-mailadres. Maak vervolgens een Gmail-clientinstantie aan:

from aspose.email.clients.google import GmailClient

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

E-mail versturen met de Gmail API

Om een e-mail met een bijlage te versturen via een Gmail-account, gebruik je de send_message methode van de IGmailClient klasse.

Het volgende codevoorbeeld laat zien hoe je een e-mail met een bijlage maakt en verzendt via de Gmail API:

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

Een bericht aan een Gmail-map toevoegen

Om berichten rechtstreeks aan een Gmail-postvak toe te voegen, waarbij de standaardclassificatie wordt omzeild, gebruik je de volgende methoden:

Het onderstaande codevoorbeeld laat zien hoe je een e-mailbericht maakt en toevoegt aan de inbox van de ontvanger met een specifiek label via de Gmail-client:

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

Lijst Gmail-berichten

Je kunt een lijst van alle berichten in een Gmail-postvak ophalen met de list_messages() methode van de IGmailClient klasse. Elk item in de geretourneerde lijst is een GmailMessageInfo object dat lichte metadata bevat, zoals ‘id’ en ’thread_id’.

Het onderstaande codevoorbeeld laat zien hoe je informatie over alle Gmail-berichten in de inbox van de gebruiker kunt ophalen en weergeven:

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

Ophalen Gmail-berichtinhoud

Na het ophalen van berichtmetadata, gebruik fetch_message(message_id) om de volledige inhoud van een specifiek bericht te downloaden als een MailMessage object. Dit maakt toegang tot onderwerp, berichttekst, bijlagen en andere berichtdetails mogelijk.

Het onderstaande codevoorbeeld laat zien hoe je de inhoud van de eerste drie Gmail-berichten van de inbox van de gebruiker kunt ophalen en weergeven:

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

Verwijder Gmail-berichten

Gebruik de delete_message(message_id, move_to_trash) methode van de IGmailClient klasse om een bericht te verwijderen. Je kunt het naar de prullenbak verplaatsen (niet permanent) of het onmiddellijk en permanent verwijderen door de tweede parameter weg te laten of False te passen.

De code hieronder toont hoe je de eerste drie berichten uit een lijst met berichten (bijv. e‑mail) naar de prullenbak verplaatst:

# 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-filters beheren

Aspose.Email voor Python biedt de volgende methoden van de IGmailClient klasse om het proces te automatiseren van het instellen van een filter om binnenkomende e‑mail te ordenen op onderwerp en bestaande filters in een Google‑e‑mailaccount te beheren:

  • list_filters() - Haalt alle filters op die op de mailbox zijn toegepast.
  • create_filter(filter) - Voegt een nieuw filter toe met aangepaste criteria en acties.
  • get_filter(id) - Haalt specifieke filterdetails op.
  • delete_filter(id) - Verwijdert filters permanent.

Gmail-filters maken en weergeven

De volgende codevoorbeeld toont hoe je een e‑mailfilter maakt en beheert met de Aspose.Email‑bibliotheek specifiek voor een Google‑client:

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-filters verwijderen

De volgende codevoorbeeld toont hoe je alle filters uit het Gmail‑account verwijdert:

filters = client.list_filters()

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