Simple Mail Transfer Protocol (SMTP) משמש כפרוטוקול לטיפול בהעברת הדואר האלקטרוני באמצעות Python. הוא משמש לניתוב מיילים בין שרתי דואר אלקטרוני. זהו פרוטוקול שכבת יישומים המאפשר למשתמשים לשלוח דואר לאחר. המקבל מאחזר דוא'ל באמצעות הפרוטוקולים POP (פרוטוקול Post Office) ו IMAP (פרוטוקול גישה להודעות אינטרנט) .
כאשר השרת מאזין לחיבור TCP מלקוח, הוא יוזם חיבור ביציאה 587.
Python מספק א smtplib מודול, המגדיר אובייקט הפעלה של לקוח SMTP המשמש לשליחת אימיילים למחשב אינטרנט. למטרה זו, עלינו לייבא את smtplib מודול באמצעות הצהרת הייבוא.
$ import smtplib
אובייקט ה-SMTP משמש להעברת הדואר האלקטרוני. התחביר הבא משמש ליצירת האובייקט smtplib.
import smtplib smtpObj = smtplib.SMTP(host, port, local_hostname)
הוא מקבל את הפרמטרים הבאים.
שיטת sendmail() של אובייקט ה-SMTP משמשת לשליחת הדואר למחשב הרצוי. התחביר ניתן להלן.
smtpObj.sendmail(sender, receiver, message)
דוגמא
#!/usr/bin/python3 import smtplib sender_mail = '[email protected]' receivers_mail = ['[email protected]'] message = '''From: From Person %s To: To Person %s Subject: Sending SMTP e-mail This is a test e-mail message. '''%(sender_mail,receivers_mail) try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender_mail, receivers_mail, message) print('Successfully sent email') except Exception: print('Error: unable to send email')
שולח אימייל מ-gmail
ישנם מקרים שבהם המיילים נשלחים באמצעות שרת ה-SMTP של Gmail. במקרה זה, נוכל להעביר את Gmail כשרת ה-SMTP במקום להשתמש במארח המקומי עם היציאה 587.
השתמש בתחביר הבא.
$ smtpObj = smtplib.SMTP('gmail.com', 587)
כאן, עלינו להתחבר לחשבון Gmail באמצעות שם המשתמש והסיסמה של Gmail. למטרה זו, ה-smtplib מספק את שיטת login() המקבלת את שם המשתמש והסיסמה של השולח.
זה עלול לגרום ל-Gmail שלך לבקש ממך גישה לאפליקציות פחות מאובטחות אם אתה משתמש ב-Gmail. תצטרך להפעיל את זה באופן זמני כדי שזה יעבוד.
הם דוגמאות לדוגמא
שקול את הדוגמה הבאה.
דוגמא
#!/usr/bin/python3 import smtplib sender_mail = '[email protected]' receivers_mail = ['[email protected]'] message = '''From: From Person %s To: To Person %s Subject: Sending SMTP e-mail This is a test e-mail message. '''%(sender_mail,receivers_mail) try: password = input('Enter the password'); smtpObj = smtplib.SMTP('gmail.com',587) smtpobj.login(sender_mail,password) smtpObj.sendmail(sender_mail, receivers_mail, message) print('Successfully sent email') except Exception: print('Error: unable to send email')
שליחת HTML בדוא'ל
אנו יכולים לעצב את ה-HTML בהודעה על-ידי ציון גרסת MIME, סוג התוכן וערכת התווים לשליחת ה-HTML.
שקול את הדוגמה הבאה.
דוגמא
#!/usr/bin/python3 import smtplib sender_mail = '[email protected]' receivers_mail = ['[email protected]'] message = '''From: From Person %s To: To Person %s MIME-Version:1.0 Content-type:text/html Subject: Sending SMTP e-mail <h3>Python SMTP</h3> <strong>This is a test e-mail message.</strong> '''%(sender_mail,receivers_mail) try: smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender_mail, receivers_mail, message) print('Successfully sent email') except Exception: print('Error: unable to send email')