اتصال به سرورهای IMAP در پایتون
Aspose.Email برای پایتون از طریق .NET شامل ImapClient کلاس، که به توسعهدهندگان امکان اتصال به سرورهای ایمیل با استفاده از IMAP (پروتکل دسترسی به پیام اینترنتی) را میدهد. این کلاس مدیریت امن و کارآمد ایمیلها را در برنامههای پایتون فراهم میکند، شامل دریافت، خواندن, جابهجایی, حذف و بهروزرسانی پیامهای ایمیل.
با استفاده از کلاینت 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