Gerenciando mensagens do Gmail com IGmailClient em Python
Aspose.Email para Python via .NET oferece recursos avançados para trabalhar com contas do Gmail através do IGmailClient classe. Isso inclui listar, enviar, anexar, buscar e excluir mensagens, bem como gerenciar filtros do Gmail.
Antes de usar IGmailClient, autentique usando seu ID de cliente, segredo do cliente, token de atualização e endereço de email. Em seguida, crie uma instância do cliente Gmail:
from aspose.email.clients.google import GmailClient
client = GmailClient.get_instance(client_id, client_secret, refresh_token, email)
Enviar email usando a API do Gmail
Para enviar um email com anexo através de uma conta Gmail, use o send_message método do IGmailClient classe.
O exemplo de código a seguir demonstra como criar e enviar um email com anexo usando a API do 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}")
Anexar uma mensagem a uma pasta do Gmail
Para adicionar mensagens diretamente a uma caixa de correio do Gmail, ignorando a classificação padrão, use os seguintes métodos:
- append_message(msg) para comportamento padrão.
- append_message(msg, label_name) para especificar um rótulo personalizado.
O exemplo de código abaixo demonstra como criar uma mensagem de email e anexá‑la à caixa de entrada do destinatário com um rótulo específico usando o cliente 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 mensagens do Gmail
Você pode recuperar uma lista de todas as mensagens em uma caixa de correio do Gmail usando o list_messages() método do IGmailClient classe. Cada item na lista retornada é um GmailMessageInfo objeto contendo metadados leves, como ‘id’ e ’thread_id’.
O exemplo de código abaixo demonstra como recuperar e exibir informações sobre todas as mensagens do Gmail na caixa de entrada do usuário:
# 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}")
Buscar conteúdo da mensagem do Gmail
Depois de recuperar os metadados da mensagem, use fetch_message(message_id) para baixar o conteúdo completo de uma mensagem específica como um MailMessage objeto. Isso permite acesso ao assunto, corpo, anexos e outros detalhes da mensagem.
O exemplo de código abaixo demonstra como buscar e exibir o conteúdo das três primeiras mensagens do Gmail da caixa de entrada do usuário:
# 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)
Excluir mensagens do Gmail
Use o delete_message(message_id, move_to_trash) método do IGmailClient classe para excluir uma mensagem. Você pode movê‑la para a lixeira (não permanente) ou excluí‑la imediatamente e permanentemente omitindo o segundo parâmetro ou passando False.
O exemplo de código abaixo demonstra como mover as três primeiras mensagens de uma lista de mensagens (como e‑mails) para a lixeira:
# 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.")
Gerenciar filtros do Gmail
Aspose.Email para Python fornece os seguintes métodos da IGmailClient classe para automatizar o processo de configuração de um filtro para organizar e‑mails recebidos com base no assunto e gerenciar filtros existentes em uma conta de e‑mail Google:
list_filters()- Recupera todos os filtros aplicados à caixa de correio.create_filter(filter)- Adiciona um novo filtro com critérios e ações customizadas.get_filter(id)- Obtém detalhes de filtros específicos.delete_filter(id)- Remove filtros permanentemente.
Criar e listar filtros do Gmail
O exemplo de código a seguir demonstra como criar e gerenciar um filtro de e‑mail usando a biblioteca Aspose.Email especificamente para cliente 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}")
Excluir filtros do Gmail
O exemplo de código a seguir demonstra como remover todos os filtros da conta Gmail:
filters = client.list_filters()
# Delete each filter
for f in filters:
client.delete_filter(f.id)
print(f"Filter ID: {f.id} deleted.")