התחבר לשרתים של IMAP בפייתון

Aspose.Email עבור פייתון דרך .NET כולל את ImapClient מחלקה, המאפשרת למפתחים להתחבר לשרתי דוא"ל באמצעות IMAP (Internet Message Access Protocol). מחלקה זו מאפשרת ניהול דוא"ל מאובטח ויעיל בתוך יישומי פייתון, כולל אחזור, קריאה, העברה, מחיקה ועדכון הודעות דוא"ל.

באמצעות לקוח ה‑IMAP, ניתן לאמת משתמשים, לנהל תיקיות בתיבת הדואר, להתחבר דרך SSL, להגדיר פיקוחות מותאמים, ולגשת לחשבונות דוא"ל דרך שרתי פרוקסי או אימות CRAM-MD5.

חיבור IMAP בסיסי

כדי להתחבר לשרת IMAP באמצעות Aspose.Email, פעל בשלושה שלבים פשוטים:

  1. צור מופע של ImapClient מחלקה.
  2. ציין את שם המארח, הפורט, שם המשתמש והסיסמה.
  3. ציין את אפשרות האבטחה הרצויה.

דוגמת הקוד שלהלן מציגה כיצד להתחבר לשרת 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