Управление сообщениями Gmail с помощью IGmailClient в Python
Aspose.Email для Python через .NET предоставляет расширенные возможности работы с аккаунтами Gmail через IGmailClient класс. Он включает листинг, отправку, добавление, получение и удаление сообщений, а также управление фильтрами Gmail.
Перед использованием IGmailClient, аутентифицируйтесь, используя ваш client ID, client secret, refresh token и адрес электронной почты. Затем создайте экземпляр клиента Gmail:
from aspose.email.clients.google import GmailClient
client = GmailClient.get_instance(client_id, client_secret, refresh_token, email)
Отправить письмо с помощью Gmail API
Чтобы отправить письмо с вложением через учетную запись Gmail, используйте send_message метод IGmailClient класс.
Следующий пример кода демонстрирует, как создать и отправить электронное письмо с вложением, используя 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}")
Добавить сообщение в папку Gmail
Чтобы добавить сообщения напрямую в почтовый ящик Gmail, обходя стандартную классификацию, используйте следующие методы:
- append_message(msg) для поведения по умолчанию.
- append_message(msg, label_name) для указания пользовательской метки.
Пример кода ниже демонстрирует, как создать электронное письмо и добавить его во входящие получателя с определённой меткой, используя клиент 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}")
Список сообщений Gmail
Вы можете получить список всех сообщений в почтовом ящике Gmail, используя list_messages() метод IGmailClient класс. Каждый элемент в возвращённом списке является GmailMessageInfo объект, содержащий лёгкие метаданные, такие как ‘id’ и ’thread_id’.
Пример кода ниже демонстрирует, как извлечь и отобразить информацию обо всех сообщениях Gmail во входящих пользователя:
# 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
После получения метаданных сообщения используйте fetch_message(message_id) для загрузки полного содержимого конкретного сообщения в виде MailMessage объект. Это позволяет получить доступ к теме, телу, вложениям и другим деталям сообщения.
Пример кода ниже демонстрирует, как получить и отобразить содержимое первых трёх сообщений Gmail из входящих пользователя:
# 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
Используйте delete_message(message_id, move_to_trash) метод IGmailClient класс для удаления сообщения. Вы можете либо переместить его в корзину (не навсегда), либо удалить сразу и навсегда, опустив второй параметр или передав False.
Ниже приведён пример кода, показывающий, как переместить первые три сообщения из списка (например, писем) в корзину:
# 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
Aspose.Email for Python предоставляет следующие методы IGmailClient класс для автоматизации процесса создания фильтра, упорядочивающего входящие письма по теме, и управления существующими фильтрами в аккаунте Google почты:
list_filters()- Получает все фильтры, применённые к ящику.create_filter(filter)- Добавляет новый фильтр с пользовательскими критериями и действиями.get_filter(id)- Получает детали конкретного фильтра.delete_filter(id)- Удаляет фильтры без возможности восстановления.
Создать и перечислить фильтры Gmail
Следующий пример кода демонстрирует, как создать и управлять фильтром электронной почты с помощью библиотеки Aspose.Email, специально для клиента 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}")
Удалить фильтры Gmail
Следующий пример кода демонстрирует, как удалить все фильтры из аккаунта Gmail:
filters = client.list_filters()
# Delete each filter
for f in filters:
client.delete_filter(f.id)
print(f"Filter ID: {f.id} deleted.")