התחבר לשרת SMTP
התחבר לשרת SMTP עם SSL
כדי להקים חיבור מאובטח עם שרת SMTP שתומך ב‑SSL, יש להגדיר את המאפיינים המרכזיים הבאים של ה‑ SmtpClient מחלקה:
-
Host: כתובת שרת ה‑SMTP (למשל smtp.gmail.com)
-
Port: הפורט המשמש לתקשורת עם SSL (בדרך כלל 465 עבור SSL מרומז או 587 עבור SSL/TLS מפורש)
-
Username: שם החשבון המשמש לאימות
-
Password: הסיסמה לחשבון ה‑SMTP
-
Security Options: סוג ההצפנה לשימוש (SSLEXPLICIT, SSLIMPLICIT, וכו׳)
דוגמת הקוד הבאה מציגה כיצד להגדיר ולהתחבר לשרת SMTP עם SSL:
הגדר זמן קצוב לתגובת הפתיחה מהשרת
כאשר נוצר חיבור עם שרת SMTP, השרת בדרך כלל שולח מחרוזת פתיחה לאחר חיבור מוצלח. תגובה זו מאשרת שהשרת מוכן להמשיך בתקשורת.
במקרים מסוימים, לקוחות דוא"ל פועלים במצב חיבור אוטומטי, ומנסים שילובים מרובים של פרוטוקולי אבטחה ופורט (כגון SSL מרומז או STARTTLS) כדי להקים חיבור מוצלח. אם תצורת הלקוח אינה תואמת למצב האבטחה הצפוי על ידי השרת, השרת לא ישלח את מחרוזת הפתיחה. חוסר התאמה זה גורם ללקוח לחכות עד שפקיע זמן הקצוב הכללי לפני ניסיון השילוב הבא — מה שמוביל לטיפול איטי בחיבורים.
כדי לשפר התנהגות זו, Aspose.Email מספקת את greeting_timeout מאפיין ב‑ SmtpClient מחלקה. מאפיין זה מגדיר זמן קצוב ספציפי (במילישניות) להמתנה למחרוזת הפתיחה של השרת. אם הפתיחה לא מתקבלת במסגרת הזמן שהוגדרה, הלקוח מנסה מיד את ההגדרה הבאה — מה שהאיץ משמעותית תהליכי חיבור אוטומטיים.
דוגמת הקוד הבאה מציגה כיצד ליישם את המאפיין בפרויקט:
import aspose.email as ae
client = ae.clients.smtp.SmtpClient("localhost", 25, "username", "password")
client.greeting_timeout = 4000
שליחת אימיילים דרך SMTP באמצעות פרוקסי SOCKS
Aspose.Email תומך בגרסאות 4, 4a ו‑5 של פרוטוקול פרוקסי SOCKS. דוגמת הקוד הבאה מציגה כיצד לשלוח אימייל באמצעות SMTP עם פרוקסי SOCKS:
import aspose.email as ae
client = ae.clients.smtp.SmtpClient("smtp.domain.com", "username", "password")
client.security_options = ae.clients.SecurityOptions.SSL_IMPLICIT
# proxy address
proxy_address = "192.168.203.142"
#proxy port
proxy_port = 1080
socks_proxy = ae.clients.SocksProxy(proxy_address, proxy_port, ae.clients.SocksVersion.SOCKS_V5)
client.proxy = socks_proxy
client.send(ae.MailMessage("sender@domain.com", "receiver@domain.com", "Sending Email via proxy", "Implement socks proxy protocol for versions 4, 4a, 5 (only Username/Password authentication)"))
שליחת אימיילים דרך SMTP באמצעות פרוקסי HTTP
דוגמת הקוד למטה מציגה את השימוש בפרוקסי HTTP כדי לשלוח אימייל דרך שרת SMTP:
import aspose.email as ae
http_proxy = ae.clients.HttpProxy("18.222.124.59", 8080)
client = ae.clients.smtp.SmtpClient("host", 587, "username", "password")
client.proxy = http_proxy
client.send(ae.MailMessage("sender@domain.com", "receiver@domain.com", "Sending Email via proxy", "Body"))
בחר שיטות אימות SMTP נתמכות בפייתון
כדי להבטיח חיבור מאובטח ונתמך לשרת SMTP, חשוב להשתמש בשיטת אימות הנתמכת הן על ידי הלקוח והן על ידי השרת. Aspose.Email for Python via .NET מספקת מובנית תכונות לניהול זה:
-
supported_authentication— מחזיר רשימת שיטות אימות הנתמכות על ידי שרת SMTP. -
allowed_authentication— מקבל או מגדיר את שיטות האימות שהלקוח מורשה להשתמש בהן.
באמצעות שימוש במאפיינים אלה, המפתחים יכולים להתאים את יכולות הלקוח לדרישות השרת ולהימנע מקשיי אימות במהלך תהליך ההתחברות.
קטע הקוד הבא מציג כיצד לציין את שיטת האימות המותאמת ל‑SMTP באמצעות allowed_authentication מאפיין:
client.allowed_authentication = ae.clients.smtp.SmtpKnownAuthenticationType.LOGIN
הגדר זמן קצוב לשרת SMTP
בעת שליחת אימיילים ברשת, הגדרת זמן קצוב מתאים היא חיונית למניעת קפיאת היישום אם השרת לא מגיב. ה‑ timeout מאפיין של SmtpClient מחלקה ב‑Aspose.Email for Python via .NET מאפשרת להגדיר את זמן ההמתנה המקסימלי (במילישניות) לתגובות השרת.
מאפיין זה חל על פעולות כגון הקמת חיבור או שליחת פקודות SMTP. אם השרת אינו מגיב בתוך הזמן المحدד, הלקוח זורק חריגת זמן קצוב, מה שמאפשר טיפול יעיל יותר בשרתים שאינם מגיבים.
השתמש בקטע הקוד הבא כדי לקבוע את זמן הקצוב לתגובת השרת:
import aspose.email as ae
client = ae.clients.smtp.SmtpClient("host", 587, "username", "password", ae.clients.SecurityOptions.SSL_EXPLICIT)
# 60 seconds
client.timeout = 60000
הפעל הצפנת TLS לחיבורים מאובטחים ל‑SMTP
Aspose.Email תומך בתקשורת מאובטחת עם שרתי SMTP באמצעות פרוטוקולי הצפנה SSL ו‑TLS. פרוטוקולים אלו מסייעים להגן על הנתונים המוחלפים בין היישום שלך לשרת הדואר, ומבטיחים סודיות ושלמות במהלך ההעברה.
NOTE: Only versions of SSL/TLS supported by your current Python framework can be applied. Unsupported protocol versions will be silently ignored without raising exceptions. If you need to bypass compatibility checks and explicitly set the encryption protocols, use the `set_supported_encryption_unsafe(value)` method of the [SmtpClient](https://reference.aspose.com/email/python-net/aspose.email.clients.smtp/smtpclient/#smtpclient-class) class.
דוגמת הקוד הבאה מציגה כיצד להגדיר TLS 1.3 לתקשורת SMTP:
import aspose.email as ae
client = ae.clients.smtp.SmtpClient("host", 587, "username", "password", ae.clients.SecurityOptions.SSL_EXPLICIT)
client.supported_encryption = ae.clients.base.EncryptionProtocols.TLS13
שימוש במנגנון CRAM-MD5 לאימות
Aspose.Email for Python via .NET תומך במנגנון האימות CRAM-MD5, המשפר את האבטחה על ידי מניעת העברת סיסמאות בטקסט גלוי במהלך אימות SMTP. שיטה זו מועילה במיוחד כאשר מתבצעת חיבור לשרתים הדורשים אימות מסוג challenge‑response.
כדי להפעיל אימות CRAM-MD5, הגדר את allowed_authentication מאפיין של SmtpClient מחלקה ל‑CRAM_MD5, כפי שמוצג בדוגמת הקוד הבאה:
client.allowed_authentication = ae.clients.smtp.SmtpKnownAuthenticationType.CRAM_MD5