Gestione dei messaggi Gmail con IGmailClient in Python

Aspose.Email per Python via .NET fornisce capacità estese per lavorare con account Gmail attraverso il IGmailClient classe. Questo include elencare, inviare, aggiungere, recuperare e cancellare messaggi, nonché gestire i filtri Gmail.

Prima di usare IGmailClient, autenticati usando il tuo client ID, client secret, refresh token e l’indirizzo email. Quindi crea un’istanza del client Gmail:

from aspose.email.clients.google import GmailClient

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

Invia email usando l’API Gmail

Per inviare un’email con allegato tramite un account Gmail, usa il send_message metodo del IGmailClient classe.

Il seguente campione di codice dimostra come creare e inviare un’email con un allegato usando 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}")

Aggiungi un messaggio a una cartella Gmail

Per aggiungere messaggi direttamente a una casella Gmail, bypassando la classificazione standard, utilizza i seguenti metodi:

Il campione di codice qui sotto dimostra come creare un messaggio email e aggiungerlo alla casella del destinatario con un’etichetta specifica usando il 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}")

Elenca messaggi Gmail

Puoi recuperare un elenco di tutti i messaggi in una casella Gmail usando il list_messages() metodo del IGmailClient classe. Ogni elemento nella lista restituita è un GmailMessageInfo oggetto contenente metadati leggeri come ‘id’ e ’thread_id’.

Il campione di codice qui sotto dimostra come recuperare e visualizzare le informazioni su tutti i messaggi Gmail nella casella di posta dell’utente:

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

Recupera contenuto messaggio Gmail

Dopo aver recuperato i metadati del messaggio, usa fetch_message(message_id) per scaricare il contenuto completo di un messaggio specifico come un MailMessage oggetto. Questo consente l’accesso a oggetto, corpo, allegati e altri dettagli del messaggio.

Il campione di codice qui sotto dimostra come recuperare e visualizzare il contenuto dei primi tre messaggi Gmail dalla casella di posta dell’utente:

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

Elimina messaggi Gmail

Usa il delete_message(message_id, move_to_trash) metodo del IGmailClient classe per eliminare un messaggio. Puoi spostarlo nel cestino (non permanente) o cancellarlo immediatamente e definitivamente omettendo il secondo parametro o passando False.

Il seguente esempio di codice dimostra come spostare i primi tre messaggi da un elenco di messaggi (come le email) nel cestino:

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

Gestisci filtri Gmail

Aspose.Email per Python fornisce i seguenti metodi di IGmailClient classe per automatizzare il processo di impostazione di un filtro per organizzare le email in arrivo in base all’oggetto e gestire i filtri esistenti in un account email Google:

  • list_filters() - Recupera tutti i filtri applicati alla casella di posta.
  • create_filter(filter) - Aggiunge un nuovo filtro con criteri e azioni personalizzate.
  • get_filter(id) - Recupera i dettagli di un filtro specifico.
  • delete_filter(id) - Rimuove i filtri in modo permanente.

Crea e elenca filtri Gmail

Il seguente esempio di codice dimostra come creare e gestire un filtro email usando la libreria Aspose.Email specificamente per il 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}")

Elimina filtri Gmail

Il seguente esempio di codice dimostra come rimuovere tutti i filtri dall’account Gmail:

filters = client.list_filters()

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