Gestionando mensajes de Gmail con IGmailClient en Python
Aspose.Email for Python via .NET ofrece capacidades extendidas para trabajar con cuentas de Gmail a través del IGmailClient clase. Esto incluye listar, enviar, adjuntar, obtener y eliminar mensajes, así como gestionar filtros de Gmail.
Antes de usar IGmailClient, autentíquese usando su ID de cliente, secreto de cliente, token de actualización y dirección de correo electrónico. Luego cree una instancia del cliente de Gmail:
from aspose.email.clients.google import GmailClient
client = GmailClient.get_instance(client_id, client_secret, refresh_token, email)
Enviar correo usando la API de Gmail
Para enviar un correo electrónico con un archivo adjunto a través de una cuenta de Gmail, use el send_message método del IGmailClient clase.
El siguiente ejemplo de código muestra cómo crear y enviar un correo electrónico con un archivo adjunto usando la API de 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}")
Adjuntar un mensaje a una carpeta de Gmail
Para agregar mensajes directamente a un buzón de Gmail, omitiendo la clasificación estándar, use los siguientes métodos:
- append_message(msg) para el comportamiento predeterminado.
- append_message(msg, label_name) para especificar una etiqueta personalizada.
El ejemplo de código a continuación muestra cómo crear un mensaje de correo electrónico y añadirlo a la bandeja de entrada del destinatario con una etiqueta específica usando el cliente de 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}")
Listar mensajes de Gmail
Puede obtener una lista de todos los mensajes en un buzón de Gmail usando el list_messages() método del IGmailClient clase. Cada elemento en la lista devuelta es un GmailMessageInfo objeto que contiene metadatos ligeros como ‘id’ y ’thread_id’.
El ejemplo de código a continuación muestra cómo recuperar y mostrar información sobre todos los mensajes de Gmail en la bandeja de entrada del usuario:
# 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}")
Obtener contenido del mensaje de Gmail
Después de obtener los metadatos del mensaje, use fetch_message(message_id) para descargar el contenido completo de un mensaje específico como un MailMessage objeto. Esto permite acceder al asunto, cuerpo, archivos adjuntos y otros detalles del mensaje.
El ejemplo de código a continuación muestra cómo obtener y mostrar el contenido de los primeros tres mensajes de Gmail de la bandeja de entrada del usuario:
# 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)
Eliminar mensajes de Gmail
Utilice el delete_message(message_id, move_to_trash) método del IGmailClient clase para eliminar un mensaje. Puede moverlo a la papelera (no permanente) o eliminarlo de forma inmediata y permanente omitiendo el segundo parámetro o pasando False.
El siguiente ejemplo de código muestra cómo mover los tres primeros mensajes de una lista de mensajes (como correos electrónicos) a la papelera:
# 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.")
Gestionar filtros de Gmail
Aspose.Email para Python proporciona los siguientes métodos del IGmailClient clase para automatizar el proceso de configuración de un filtro que organice los correos entrantes según su línea de asunto y gestionar los filtros existentes en una cuenta de correo de Google:
list_filters()- Recupera todos los filtros aplicados al buzón.create_filter(filter)- Añade un nuevo filtro con criterios y acciones personalizadas.get_filter(id)- Obtiene detalles específicos del filtro.delete_filter(id)- Elimina filtros permanentemente.
Crear y listar filtros de Gmail
El siguiente ejemplo de código muestra cómo crear y gestionar un filtro de correo electrónico usando la biblioteca Aspose.Email específicamente para el cliente de 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}")
Eliminar filtros de Gmail
El siguiente ejemplo de código muestra cómo eliminar todos los filtros de la cuenta de Gmail:
filters = client.list_filters()
# Delete each filter
for f in filters:
client.delete_filter(f.id)
print(f"Filter ID: {f.id} deleted.")