مدیریت پیام‌های Gmail با IGmailClient در پایتون

Aspose.Email برای پایتون از طریق .NET قابلیت‌های گسترده‌ای برای کار با حساب‌های جیمیل از طریق IGmailClient کلاس. این شامل فهرست‌بندی، ارسال، افزودن، دریافت و حذف پیام‌ها، همچنین مدیریت فیلترهای جیمیل می‌شود.

قبل از استفاده از IGmailClient، با استفاده از شناسه مشتری، کلید محرمانه، توکن تجدید، و آدرس ایمیل خود احراز هویت کنید. سپس یک نمونه کلاینت جیمیل ایجاد کنید:

from aspose.email.clients.google import GmailClient

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

ارسال ایمیل با استفاده از Gmail API

برای ارسال ایمیل با پیوست از طریق حساب جیمیل، از 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}")

اضافه کردن پیام به پوشه جیمیل

برای افزودن مستقیم پیام‌ها به صندوق جیمیل، بدون عبور از دسته‌بندی استاندارد، از روش‌های زیر استفاده کنید:

نمونه کد زیر نشان می‌دهد چگونه یک پیام ایمیل ایجاد کرده و با برچسب معینی به صندوق ورودی گیرنده اضافه کنید با استفاده از کلاینت جیمیل:

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

فهرست پیام‌های جیمیل

می‌توانید لیستی از تمام پیام‌ها در یک صندوق جیمیل را با استفاده از list_messages() متد از IGmailClient کلاس. هر آیتم در لیست برگردانده‌شده یک GmailMessageInfo شی شامل متادیتای سبک مانند ‘id’ و ’thread_id’.

نمونه کد زیر نشان می‌دهد چگونه اطلاعات تمام پیام‌های جیمیل در صندوق ورودی کاربر را بازیابی و نمایش دهید:

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

دریافت محتویات پیام جیمیل

پس از دریافت متادیتای پیام، از fetch_message(message_id) برای دانلود کامل محتویات یک پیام خاص به صورت MailMessage شی. این امکان دسترسی به موضوع، بدنه، پیوست‌ها و سایر جزئیات پیام را می‌دهد.

نمونه کد زیر نشان می‌دهد چگونه محتویات اولین سه پیام جیمیل کاربر را از صندوق ورودی دریافت و نمایش دهید:

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

حذف پیام‌های جیمیل

از 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 برای Python روش‌های زیر را ارائه می‌دهد: IGmailClient کلاسی برای خودکارسازی فرآیند تنظیم فیلتر جهت سازماندهی ایمیل‌های ورودی بر اساس عنوان آن‌ها و مدیریت فیلترهای موجود در حساب ایمیل Google:

  • list_filters() - تمام فیلترهای اعمال‌شده به صندوق‌پستی را بازیابی می‌کند.
  • create_filter(filter) - فیلتر جدیدی با معیارها و اقدامات سفارشی اضافه می‌کند.
  • get_filter(id) - جزئیات فیلتر خاصی را دریافت می‌کند.
  • delete_filter(id) - فیلترها را به‌صورت دائمی حذف می‌کند.

ایجاد و فهرست‌ کردن فیلترهای Gmail

نمونه کد زیر نشان می‌دهد چگونه با استفاده از کتابخانه Aspose.Email، فیلتر ایمیل را برای کلاینت گوگل ایجاد و مدیریت کنید:

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