Керування повідомленнями 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.")
Manage Gmail Filters
Aspose.Email для Python надає такі методи IGmailClient клас для автоматизації процесу створення фільтра, що організовує вхідні листи за темою, та управління існуючими фільтрами в обліковому записі Google:
list_filters()- Повертає всі фільтри, застосовані до поштової скриньки.create_filter(filter)- Додає новий фільтр з користувацькими критеріями та діями.get_filter(id)- Отримує деталі конкретного фільтра.delete_filter(id)- Видаляє фільтри назавжди.
Create and List Gmail Filters
Наступний приклад коду демонструє, як створити та керувати фільтром електронної пошти за допомогою бібліотеки 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}")
Delete Gmail Filters
Наступний приклад коду демонструє, як видалити всі фільтри з облікового запису Gmail:
filters = client.list_filters()
# Delete each filter
for f in filters:
client.delete_filter(f.id)
print(f"Filter ID: {f.id} deleted.")