logo

Python שליחת דואר אלקטרוני באמצעות SMTP

Simple Mail Transfer Protocol (SMTP) משמש כפרוטוקול לטיפול בהעברת הדואר האלקטרוני באמצעות Python. הוא משמש לניתוב מיילים בין שרתי דואר אלקטרוני. זהו פרוטוקול שכבת יישומים המאפשר למשתמשים לשלוח דואר לאחר. המקבל מאחזר דוא'ל באמצעות הפרוטוקולים POP (פרוטוקול Post Office) ו IMAP (פרוטוקול גישה להודעות אינטרנט) .

Python שליחת דואר אלקטרוני באמצעות SMTP

כאשר השרת מאזין לחיבור TCP מלקוח, הוא יוזם חיבור ביציאה 587.

Python מספק א smtplib מודול, המגדיר אובייקט הפעלה של לקוח SMTP המשמש לשליחת אימיילים למחשב אינטרנט. למטרה זו, עלינו לייבא את smtplib מודול באמצעות הצהרת הייבוא.

 $ import smtplib 

אובייקט ה-SMTP משמש להעברת הדואר האלקטרוני. התחביר הבא משמש ליצירת האובייקט smtplib.

 import smtplib smtpObj = smtplib.SMTP(host, port, local_hostname) 

הוא מקבל את הפרמטרים הבאים.

    מנחה:זהו שם המארח של המחשב שמפעיל את שרת ה-SMTP שלך. כאן, אנו יכולים לציין את כתובת ה-IP של השרת כמו ( https://www.javatpoint.com ) או localhost. זה פרמטר אופציונלי.נמל:זהו מספר היציאה שבו המכשיר המארח מאזין לחיבורי ה-SMTP. זה 25 כברירת מחדל.local_hostname:אם שרת ה-SMTP פועל במחשב המקומי שלך, נוכל לציין את שם המארח של המחשב המקומי.

שיטת 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. תצטרך להפעיל את זה באופן זמני כדי שזה יעבוד.

הם דוגמאות לדוגמא
Python שליחת דואר אלקטרוני באמצעות SMTP

שקול את הדוגמה הבאה.

דוגמא

 #!/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 = &apos;[email protected]&apos; receivers_mail = [&apos;[email protected]&apos;] message = &apos;&apos;&apos;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> &apos;&apos;&apos;%(sender_mail,receivers_mail) try: smtpObj = smtplib.SMTP(&apos;localhost&apos;) smtpObj.sendmail(sender_mail, receivers_mail, message) print(&apos;Successfully sent email&apos;) except Exception: print(&apos;Error: unable to send email&apos;)