إدارة رسائل Gmail باستخدام IGmailClient في بايثون
توفر Aspose.Email للغة Python عبر .NET إمكانات موسعة للعمل مع حسابات Gmail من خلال IGmailClient فئة. يتضمن ذلك سرد الرسائل، وإرسالها، وإلحاقها، وجلبها، وحذفها، بالإضافة إلى إدارة عوامل تصفية Gmail.
قبل استخدام IGmailClient، قم بالمصادقة باستخدام معرف العميل، سر العميل، رمز التحديث، وعنوان البريد الإلكتروني. ثم أنشئ مثالًا لعميل Gmail:
from aspose.email.clients.google import GmailClient
client = GmailClient.get_instance(client_id, client_secret, refresh_token, email)
إرسال بريد إلكتروني باستخدام واجهة برمجة تطبيقات Gmail
لإرسال بريد إلكتروني مع مرفق عبر حساب Gmail، استخدم send_message طريقة الـ IGmailClient فئة.
يعرض مثال الشيفرة التالي كيفية إنشاء وإرسال بريد إلكتروني مع مرفق باستخدام واجهة برمجة تطبيقات 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}")
إلحاق رسالة إلى مجلد 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 لبايثون يوفر الطرق التالية لـ 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.")