الاتصال بخوادم IMAP في بايثون
يتضمن Aspose.Email للبايثون عبر .NET الـ ImapClient فئة تسمح للمطورين بالاتصال بخوادم البريد باستخدام بروتوكول IMAP (Internet Message Access Protocol). تتيح هذه الفئة إدارة بريد إلكتروني آمنة وفعالة داخل تطبيقات بايثون، بما في ذلك استرجاع، قراءة، نقل، حذف وتحديث رسائل البريد الإلكتروني.
باستخدام عميل IMAP، يمكنك توثيق المستخدمين، إدارة مجلدات صندوق البريد، الاتصال عبر SSL، تعيين مهلات مخصصة، والوصول إلى حسابات البريد الإلكتروني عبر خوادم بروكسي أو مصادقة CRAM-MD5.
اتصال IMAP أساسي
للاتصال بخادم IMAP باستخدام Aspose.Email، اتبع الخطوات الثلاث البسيطة التالية:
- إنشاء مثيل من الـ ImapClient فئة.
- حدد اسم المضيف، المنفذ، اسم المستخدم وكلمة المرور.
- حدد خيار الأمان المطلوب.
تُظهر عينة الشيفرة أدناه كيفية الاتصال بخادم IMAP برمجياً:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")
تمكين SSL لاتصالات IMAP
للاتصال بخادم IMAP مدعوم SSL، عيّن الـ security_options خاصية إلى SSLImplicit:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")
# Set the security mode to implicit
client.security_options = ae.clients.SecurityOptions.SSL_EXPLICIT
الاتصال عبر بروكسي SOCKS
يدعم Aspose.Email إصدارات SOCKS 4 و 4a و 5 للاتصالات عبر البروكسي. استخدم الخطوات التالية للاتصال عبر بروكسي SOCKS:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", "username", "password")
client.security_options = ae.clients.SecurityOptions.AUTO
proxy = ae.clients.SocksProxy("192.168.203.142", 1080, ae.clients.SocksVersion.SOCKS_V5)
client.proxy = proxy
client.select_folder("Inbox")
الاتصال بالخادم عبر بروكسي HTTP
كما يتيح Aspose.Email اتصالات IMAP عبر بروكسي HTTP:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", "username", "password")
client.proxy = ae.clients.HttpProxy("18.222.124.59", 8080)
client.select_folder("Inbox")
الوصول إلى صندوق البريد بوضع القراءة فقط
لمنع تغييرات محتويات صندوق البريد، فعِّل وضع القراءة فقط. الـ read_only تعيين الخاصية إلى True يعني عدم السماح بالتغييرات. تُظهر عينة الشيفرة التالية كيفية استخدام هذه الخاصية في مشروع:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")
client.security_options = ae.clients.SecurityOptions.SSL_EXPLICIT
client.read_only = True
استخدام مصادقة CRAM-MD5
لتحسين الأمان، قم بتكوين العميل لاستخدام مصادقة CRAM-MD5:
توضح عينة الشيفرة التالية كيفية تكوين العميل لقبول CRAM-MD5 كإحدى طرق المصادقة المدعومة للاتصال بخادم IMAP:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")
client.allowed_authentication = ae.clients.imap.ImapKnownAuthenticationType.CRAM_MD5
تعيين مهلة العملية
منع العميل من الانتظار إلى ما لا نهاية عن طريق تعيين مهلة (بالملي ثانية):
يظهر مقطع الشيفرة التالي كيفية تعيين مهلة قدرها 60,000 مللي ثانية (60 ثانية) للعميل للانتظار لاستجابة الخادم:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd", ae.clients.SecurityOptions.SSL_IMPLICIT)
# 60 seconds
client.timeout = 60000
تعيين مهلة الترحيب
التحكم في مدة انتظار العميل أثناء المصافحة الأولية مع خادم البريد.
يظهر مقطع الشيفرة التالي كيفية تقييد مهلة الترحيب باستخدام خاصية greeting_timeout للـ ImapClient فئة:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd")
client.greeting_timeout = 4000
client.select_folder(ae.clients.imap.ImapFolderInfo.IN_BOX)
استخدام TLS مع عميل IMAP
يدعم Aspose.Email بروتوكولي TLS و SSL للاتصالات الآمنة. استخدم الـ supported_encryption خاصية لتحديد إصدارات البروتوكول المقبولة.
ملاحظة: يمكنك تعيين فقط إصدارات البروتوكول التي يدعمها .NET Framework. إذا لم تكن بعض إصدارات البروتوكول مدعومة في إصدار .NET Framework الحالي لديك، سيتم تجاهلها وتخطيها. قد يؤدي ذلك إلى تقليل مستوى أمان TLS. في هذه الحالة، لن يتم إنشاء استثناءات. يرجى استخدام طريقة ‘set_supported_encryption_unsafe(value)’ إذا رغبت في تعيين البروتوكولات دون أي فحوصات توافق.
يوضح لك مثال الشيفرة أدناه كيفية تعيين TLS 1.3 لـ ImapClient مثيل الفئة.
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd", ae.clients.SecurityOptions.SSL_IMPLICIT)
client.supported_encryption = ae.clients.base.EncryptionProtocols.TLS13
في حالة عدم دعم بروتوكول تشفير محدد في الإصدار الحالي من .NET Framework، الفرق في السلوك بين طريقة set_supported_encryption_unsafe(value) وخاصة supported_encryption هو كما يلي:
- إذا تم استخدام خاصية supported_encryption، فإن عميل البريد الإلكتروني يخفض بروتوكول التشفير إلى مستوى مدعوم.
- إذا تم استخدام طريقة set_supported_encryption_unsafe(value)، فإن عميل البريد الإلكتروني يطرح استثناءات.
التحقق من بيانات اعتماد خادم IMAP
لإنشاء اتصال آمن بخادم IMAP قبل القيام بمزيد من الإجراءات، يتم فحص بيانات اعتماد المستخدم والتحقق من صحتها. طريقة validate_credentials للـ ImapClient الفئة تساعد على التحقق مما إذا كان اسم المستخدم وكلمة المرور المقدمة صحيحتين. إذا كانت بيانات الاعتماد صالحة بالفعل، يمكن للعميل أن يُوثق بنجاح مع خادم IMAP. تُظهر عينة الشيفرة التالية كيفية تنفيذ هذه الطريقة في مشروعك:
import aspose.email as ae
with ae.clients.imap.ImapClient("your imap server", 993, "your username", "your password", ae.clients.SecurityOptions.AUTO) as client:
client.timeout = 4000
if client.validate_credentials():
# Further actions
تمكين تسجيل نشاط IMAP
يتضمن تسجيل النشاط تسجيل اتصالات الخادم، تفاصيل نقل الرسائل المرسلة والمستلمة، رسائل الخطأ أثناء معالجة البريد الإلكتروني، وأي إجراءات أخرى يقوم بها العميل أو الخادم. لتتبع نشاط عميل IMAP وتفاعلاته مع الخادم، استخدم عينة الشيفرة التالية التي تستخدم خاصية log_file_name لـ ImapClient فئة لتسجيل المعلومات إلى ملف السجل المحدد:
import aspose.email as ae
client = ae.clients.imap.ImapClient("imap.domain.com", 993, "user@domain.com", "pwd", ae.clients.SecurityOptions.SSL_IMPLICIT)
# Set the path to the log file using the LogFileName property.
client.log_file_name = "C:\\Aspose.Email.IMAP.log"
# Set the UseDateInLogFileName property if it is necessary.
client.use_date_in_log_file_name = False