כיצד לשלוח הודעות דוא'ל אוטומטיות ב- Python

כיצד לשלוח הודעות דוא'ל אוטומטיות ב- Python

בעוד שלקוחות דוא'ל מסחריים מציעים את הנוחות של ממשק משתמש ידידותי למשתמש, הם לרוב חסרים את הגמישות וההתאמה האישית שמפתחים או יוצרי תוכן רבים רוצים לצרכי הדוא'ל שלהם.





בין אם שלחת הודעת תודה למנוי חדש בערוץ המדיה החברתית שלך או הוספת פונקציונליות דוא'ל לפרויקט האחרון שלך, היכולת לשלוח הודעות אוטומטיות באמצעות SMTP ב- Python היא דבר שצריך להועיל.





המשך לקרוא כדי לגלות כיצד תוכל לקבל סקריפט של פייתון לשלוח הודעות דוא'ל שפועלות במחשב שלך היום.





מהו SMTP?

במילים פשוטות, SMTP או פרוטוקול העברת דואר פשוט, הוא פרוטוקול תקשורת עבור שרתי דואר להעברת דוא'ל דרך האינטרנט.

זהו חלק בלתי נפרד משכבת ​​היישומים של חבילת TCP/IP, המהווה קבוצת פרוטוקולים המשמשים לתקשורת דרך האינטרנט או רשתות דומות אחרות. ברשת בה מיושם SMTP, תהליך המכונה לאחסן ולהתקדם עוזר להעביר דואר בין רשתות.



בכל נקודת קצה, תוכנה הידועה בשם Mail Transfer Agent (MTA) משתמשת בחנות וקדימה כדי להקל על התקשורת בין שרתי ה- SMTP המשתתפים. התפקיד העיקרי של SMTP, לפיכך, הוא פשוט להכתיב לאן וכיצד הדואר עובר מנקודה אחת לאחרת ברשת.

מתחילים

עליך להיות בעל חשבון דוא'ל לשליחת הודעות דוא'ל באמצעות תוכנית זו. הסיבה לכך היא שנשתמש בשירות ה- SMTP של לקוח הדוא'ל לשליחת מיילים. להדרכה זו נשתמש ב- Gmail.





תוכל גם להשתמש בשרת ניפוי באגים SMTP מקומי כדי לשלוח הודעות דוא'ל לבדיקה, אך לעת עתה נשתמש בחשבון דוא'ל לשליחת הודעות דוא'ל מכיוון שהוא אינטואיטיבי יותר.

אפשר פשוט להשתמש בחשבון Gmail קיים, אך תוך כדי משחק עם התוכנית שלך, הוא עשוי להתמלא בקרוב בדוא'ל בדיקה. זו הסיבה שאנו ממליצים ליצור חשבון 'לזרוק' לצורך הבדיקה.





כעת, הפעל את האפשרות ל לאפשר אפליקציות פחות מאובטחות כדי לגשת לחשבון Gmail שלך. זוהי סיבה נוספת לשימוש בדוא'ל לזרוק מכיוון שלא מומלץ להשתעשע עם הגדרות הפרטיות של הדוא'ל הראשי שלך.

כתיבת המייל ב- Python

Python 3 מותקן מראש עם מודול בשם smtplib (קיצור של ספריית smtp), שניתן להשתמש בו לעבודה עם שרתי SMTP.

כמו כל מודול פייתון אחר, הדבר הראשון שאתה צריך לעשות הוא לייבא smtplib.

import smtplib

אתחול אובייקט SMTP

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

mySMTP = smtplib.SMTP('smtp.google.com')

פעולה זו מגדירה את אובייקט ה- SMTP לשליחת הודעות דוא'ל באמצעות שרת ה- SMTP של Google.

לאחר מכן, אנו מציינים את הודעות האימייל של השולח והנמען. כאן שימושי חשבון Gmail שיצרת קודם לכן.

emailSender = senderMail@sender.com
myThroaway = 'myEmail@gmail.com'
emailRecipients = [myThroaway]

דבר אחד שצריך לציין כאן הוא שרשימת הנמענים היא למעשה מערך, מה שאומר שהוא נועד לאחסן ערכים לא אטומיים. כתוצאה מכך, תוכל אפילו לציין רשימת תפוצה שלמה בשדה זה!

כתיבת ההודעה

ניתן לטעון שהחלק הפשוט ביותר בתהליך, כאן עליך להזין ערכים שהיית מוסיף בדרך כלל בעת חיבור הודעת דוא'ל חדשה. זה כולל:

  • פרטי השולח
  • פרטי הנמען
  • נושא
  • גוף ההודעה

שדות אלה מורכבים בתוך מרכאות משולשות ומתוחמים כדלקמן:

שני מחשבים שני צגים מקלדת אחת עכבר אחד
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

שליחת המייל

לבסוף, נוכל להשתמש בפקודה sendmail לשליחת הדואר משרת ה- SMTP שלך לשרת הנמען.

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

כעת, יש רק שלב אחרון: ארגון מחדש של הקוד למניעת קריסות תוכניות צפויות.

פתרון בעיות בתוכנית הדוא'ל שלך ב- Python

לפעמים שרת ה- SMTP שלך עלול להיכשל ביצירת חיבור לזה של הנמען, או שיש בעיה בשליחת דוא'ל מיציאת SMTP אחת לאחרת. במקרה כזה התוכנית שלך עלולה לקרוס באופן בלתי צפוי.

כדי להסביר את האפשרויות הללו, תוכל להשתמש ב- לנסות-חוץ חסום והכנס את ההצהרות מועדות לשגיאה בתוך לְנַסוֹת לַחסוֹם. כל התוכנית שלך, יחד עם הבלוק ללא פרסום, אמורים להיראות בערך כך:

import smtplib
emailSender = senderMail@sender.com
myThroaway = ‘my_email@gmail.com’
emailRecipients = [myThroaway]
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''
try:
smtpObj = smtplib.SMTP(‘smtp.gmail.com’)
mySMTP.sendmail(emailSender, emailRecipients, newEmail)
print (Email sent successfully!)
except SMTPException:
print ('Error: There was an error in sending your email.')

אבטחת הדוא'ל שלך

אם בכוונתך להשתמש ב- Python בהגדרות בעולם האמיתי לשליחת מיילים, חשוב לוודא שהתקשורת מאובטחת משני הקצוות.

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

אחת הדרכים לעקוף בעיה זו היא להשתמש בפרוטוקול TLS (Transport Layer Security) להצפנת התקשורת שלך. זהו אותו פרוטוקול המשמש את לקוחות הדוא'ל הגדולים כגון Gmail ו- Outlook כדי להבטיח שהודעות הדוא'ל שלך לעולם לא יגיעו לידיים הלא נכונות.

לשם כך עלינו לבצע מספר שינויים קלים בתוכנית שיצרנו קודם לכן.

השלב הראשון, כמובן, הוא ייבוא ​​ה- ssl הספרייה יחד עם smtplib . ה ssl הספרייה נותנת לך את היכולת ליצור הקשר SSL מאובטח ולתקשר באמצעות רשת מוצפנת על ידי חיבור ליציאות ספציפיות משני הקצוות.

הקשר SSL מאובטח אינו אלא אוסף של צפנים, גרסאות פרוטוקול, אישורים מהימנים, אפשרויות TLS ותוספי TLS.

בעקבות זאת, אנו יכולים לציין את יציאת TLS ולהוסיף כמה ssl ספריית פונקציות ליצירת דואר אלקטרוני מאובטח.

הקוד, עם כל השינויים שבוצעו, נראה בערך כך:

import smtplib, ssl
smtpServer = 'smtp.gmail.com'
port = 587
myEmail = 'my_email@gmail.com'
password = 'my_password'
#email and password can also be user input fields
context = ssl.create_default_context()
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''
try:
server = smtplib.SMTP(smtpServer,port)
server.starttls(context=context)
server.login(newEmail, password)
except Exception as e:
print('the email could not be sent.')
finally:
server.quit()

כמו בעבר, עליך ליצור ולהשתמש במופע ה- SMTP בבלוק ניסיון למעט, על מנת למנוע קריסת תוכניות פתאומית.

כיצד לבחור חשבון Google המוגדר כברירת מחדל

מה אתה יכול לעשות עם סקריפט פייתון זה

כעת, לאחר שגילית את המיומנות המדהימה והשימושית להפתיע של אוטומציה של הודעות דוא'ל באמצעות קוד, תוכל ליישם אותה על כל פלטפורמה הדורשת שליחת מיילים לרשימת תפוצה מגוונת.

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

כמו כן, זהו רק אחד מהדברים המדהימים הרבים שתוכל לעשות עם פייתון. עם תמיכת המפתחים שלה בכל מקום ותחביר הניתן ללמידה, קבלת מיומנות Python מעולם לא הייתה קלה יותר.

כדי להמשיך לבנות דברים מגניבים עם קוד, עיין במדריך שלנו כיצד לעשות זאת בנה בוט טלגרם משלך עם Python 3 !

לַחֲלוֹק לַחֲלוֹק צִיוּץ אימייל כיצד לשדרג את כישורי Python ו- AI שלך עם Keras, Pytorch, Tensorflow ועוד

שדרג את כישורי התכנות והפיתוח שלך ב- Python, בינה מלאכותית, Keras, PyTorch ועוד.

קרא הבא
נושאים קשורים
  • תִכנוּת
  • Gmail
  • טיפים בדוא'ל
  • פִּיתוֹן
  • אוטומציה של משימות
על הסופר יאש צ'לאני(פורסמו 10 מאמרים)

יאש הוא סטודנט שאפתן למדעי המחשב שאוהב לבנות דברים ולכתוב על כל הדברים הטכנולוגיים. בזמנו הפנוי הוא אוהב לשחק סקווש, לקרוא עותק של Murakami האחרון ולצוד דרקונים ב- Skyrim.

עוד מאת יאש צ'לאני

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים, סקירות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחצו כאן להרשמה