Ενώ οι εμπορικοί πελάτες email προσφέρουν την ευκολία ενός φιλικού προς το χρήστη GUI, συχνά δεν διαθέτουν ευελιξία και δυνατότητα προσαρμογής που επιθυμούν πολλοί προγραμματιστές ή δημιουργοί περιεχομένου για τα email τους ανάγκες των.

Είτε πρόκειται για την αποστολή ευχαριστηρίου email σε έναν νέο συνδρομητή στο κανάλι κοινωνικών μέσων σας ή για την προσθήκη λειτουργικότητας email στο το πιο πρόσφατο έργο σας, η δυνατότητα αποστολής αυτοματοποιημένων μηνυμάτων μέσω SMTP στο Python είναι κάτι που θα πρέπει να έρθει εύχρηστος.

Διαβάστε παρακάτω για να μάθετε πώς μπορείτε να λάβετε ένα σενάριο Python για να στέλνετε μηνύματα ηλεκτρονικού ταχυδρομείου που εκτελούνται στον υπολογιστή σας σήμερα.

Τι είναι το SMTP;

Με απλά λόγια, το SMTP ή το Simple Mail Transfer Protocol, είναι ένα πρωτόκολλο επικοινωνίας για τους διακομιστές αλληλογραφίας για τη μετάδοση email μέσω του Διαδικτύου.

Είναι αναπόσπαστο μέρος του επιπέδου εφαρμογής της σουίτας TCP / IP, το οποίο είναι ένα σύνολο πρωτοκόλλων που χρησιμοποιούνται για επικοινωνία μέσω του Διαδικτύου ή άλλων παρόμοιων δικτύων. Σε ένα δίκτυο όπου εφαρμόζεται το SMTP, μια διαδικασία γνωστή ως

αποθήκευση και προώθηση βοηθά στη μεταφορά αλληλογραφίας σε δίκτυα.

Σε κάθε τελικό σημείο, το λογισμικό γνωστό ως Mail Transfer Agent (MTA) χρησιμοποιεί το store και το forward για να διευκολύνει την επικοινωνία μεταξύ των συμμετεχόντων διακομιστών SMTP. Ο κύριος ρόλος του SMTP, επομένως, είναι απλώς να υπαγορεύσει πού και πώς κινείται η αλληλογραφία από το ένα σημείο στο άλλο σε ένα δίκτυο.

Ξεκινώντας

Πρέπει να διαθέτετε λογαριασμό email για να στέλνετε email χρησιμοποιώντας αυτό το πρόγραμμα. Αυτό συμβαίνει επειδή θα χρησιμοποιούμε την υπηρεσία SMTP του πελάτη email για την αποστολή email. Για αυτό το σεμινάριο, θα χρησιμοποιούμε το Gmail.

Μπορείτε επίσης να χρησιμοποιήσετε έναν τοπικό διακομιστή εντοπισμού σφαλμάτων SMTP για να στείλετε δοκιμαστικά μηνύματα ηλεκτρονικού ταχυδρομείου, αλλά προς το παρόν θα χρησιμοποιήσουμε έναν λογαριασμό email για την αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου, καθώς είναι πιο διαισθητικό.

Μπορείτε απλά να χρησιμοποιήσετε έναν υπάρχοντα λογαριασμό Gmail, αλλά καθώς παίζετε με το πρόγραμμά σας, ενδέχεται σύντομα να γεμίσει με δοκιμαστικά μηνύματα ηλεκτρονικού ταχυδρομείου. Αυτός είναι ο λόγος για τον οποίο προτείνουμε τη δημιουργία λογαριασμού "απορριμμάτων" για σκοπούς δοκιμής.

Τώρα, ενεργοποιήστε την επιλογή για επιτρέψτε λιγότερο ασφαλείς εφαρμογές για πρόσβαση στον λογαριασμό σας στο Gmail. Αυτός είναι ένας άλλος λόγος για να χρησιμοποιήσετε ένα ηλεκτρονικό ταχυδρομείο, καθώς δεν συνιστάται να παίζετε με τις ρυθμίσεις απορρήτου του κύριου email σας.

Γράφοντας το email στο Python

Το Python 3 έρχεται προεγκατεστημένο με μια μονάδα που ονομάζεται smtplib (συντομογραφία για τη βιβλιοθήκη smtp), η οποία μπορεί να χρησιμοποιηθεί για εργασία με διακομιστές SMTP.

Όπως κάθε άλλη μονάδα Python, το πρώτο πράγμα που πρέπει να κάνετε είναι να εισαγάγετε smtplib.

εισαγωγή smtplib

Αρχικοποίηση ενός αντικειμένου SMTP

Τώρα, μπορείτε να χρησιμοποιήσετε το smtplib για να δημιουργήσετε ένα αντικείμενο SMTP, το οποίο θα σας παρέχει το μεγαλύτερο μέρος της λειτουργικότητας ενός συμβατικού προγράμματος-πελάτη email. Ωστόσο, οι λειτουργίες ενός αντικειμένου SMTP μπορούν να χρησιμοποιηθούν μόνο μέσω μεθόδων παρουσίας. Έτσι, φυσικά, το επόμενο βήμα είναι να δηλώσετε μια παρουσία αντικειμένου.

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

Αυτό ρυθμίζει το αντικείμενο SMTP ώστε να στέλνει μηνύματα ηλεκτρονικού ταχυδρομείου χρησιμοποιώντας τον διακομιστή SMTP της Google.

Μετά από αυτό, καθορίζουμε τα email του αποστολέα και του παραλήπτη. Εδώ είναι όπου ο λογαριασμός Gmail που δημιουργήσατε νωρίτερα είναι χρήσιμος.

emailSender = "[email protected]"
myThroaway = "[email protected]"
emailRecipients = [myThroaway]

Ένα πράγμα που πρέπει να σημειωθεί εδώ είναι ότι η λίστα παραληπτών είναι στην πραγματικότητα ένας πίνακας, που σημαίνει ότι έχει σχεδιαστεί για να αποθηκεύει μη ατομικές τιμές. Ως αποτέλεσμα, μπορείτε ακόμη και να καθορίσετε μια ολόκληρη λίστα αλληλογραφίας σε αυτό το πεδίο!

Σύνταξη του μηνύματος

Αναμφισβήτητα το πιο απλό μέρος της διαδικασίας, εδώ πρέπει να εισαγάγετε τιμές που θα προσθέσατε κανονικά κατά τη σύνταξη ενός νέου email. Αυτό περιλαμβάνει:

  • Τα στοιχεία του αποστολέα
  • Στοιχεία παραλήπτη
  • Θέμα
  • Σώμα μηνύματος

Αυτά τα πεδία συγκεντρώνονται μέσα σε τριπλά εισαγωγικά και οριοθετούνται ως εξής:

newEmail = Από: Από άτομο 
Προς: Προσωπικό
Θέμα: Δοκιμή ηλεκτρονικού ταχυδρομείου
Αυτό είναι το κύριο μέρος του email.

Αποστολή email

Τέλος, μπορούμε να χρησιμοποιήσουμε την εντολή sendmail για να στείλουμε την αλληλογραφία από τον διακομιστή SMTP στον διακομιστή του παραλήπτη.

mySMTP.sendmail (emailSender, emailRecipients, newEmail)

Τώρα, υπάρχει μόνο ένα τελικό βήμα: η αναδιοργάνωση του κώδικα για την αποφυγή τυχόν προβλέψιμων διακοπών του προγράμματος.

Αντιμετώπιση προβλημάτων του προγράμματος ηλεκτρονικού ταχυδρομείου Python

Μερικές φορές, ο διακομιστής SMTP ενδέχεται να αποτύχει να δημιουργήσει σύνδεση με αυτήν του παραλήπτη ή ενδέχεται να υπάρχει πρόβλημα με την αποστολή email από μια θύρα SMTP σε άλλη. Σε μια τέτοια περίπτωση, το πρόγραμμά σας ενδέχεται να διακοπεί απροσδόκητα.

Για να λάβετε υπόψη αυτές τις δυνατότητες, μπορείτε να χρησιμοποιήσετε ένα δοκιμάστε-εκτός μπλοκάρετε και τοποθετήστε τις δηλώσεις που είναι επιρρεπείς σε σφάλματα μέσα στο προσπαθήστε ΟΙΚΟΔΟΜΙΚΟ ΤΕΤΡΑΓΩΝΟ. Όλο το πρόγραμμά σας, μαζί με το μπλοκ try-kecuali, θα πρέπει να μοιάζει με αυτό:

εισαγωγή smtplib
emailSender = "[email protected]"
myThroaway = "[email protected]"
emailRecipients = [myThroaway]
newEmail = Από: Από άτομο
Προς: Προσωπικό
Θέμα: Δοκιμή ηλεκτρονικού ταχυδρομείου
Αυτό είναι το κύριο μέρος του email.

προσπαθήστε:
smtpObj = smtplib. SMTP («smtp.gmail.com»)
mySMTP.sendmail (emailSender, emailRecipients, newEmail)
εκτύπωση ("Το ηλεκτρονικό ταχυδρομείο στάλθηκε με επιτυχία!")
εκτός από το SMTPException:
print ("Σφάλμα: Παρουσιάστηκε σφάλμα κατά την αποστολή του email σας.")

Εξασφάλιση των email σας

Εάν σκοπεύετε να χρησιμοποιήσετε το Python σε πραγματικό κόσμο για να στείλετε email, είναι σημαντικό να βεβαιωθείτε ότι η επικοινωνία είναι ασφαλής και στα δύο άκρα.

Η χρήση ενός απλού διακομιστή SMTP με την προεπιλεγμένη θύρα δεν παρέχει κανένα επίπεδο κρυπτογράφησης στην επικοινωνία. Αυτό σημαίνει ότι εάν κάποιος τρίτος ακούει στο δίκτυό σας, μπορεί να έχει πρόσβαση στα διαπιστευτήρια σύνδεσής σας και στις πληροφορίες που περιέχονται στο email σας.

Ένας τρόπος για να παρακάμψετε αυτό το πρόβλημα είναι να χρησιμοποιήσετε το πρωτόκολλο TLS (Transport Layer Security) για την κρυπτογράφηση της επικοινωνίας σας. Αυτό είναι το ίδιο πρωτόκολλο που χρησιμοποιείται από μεγάλους πελάτες email, όπως το Gmail και το Outlook, για να διασφαλιστεί ότι τα email σας δεν θα πέσουν ποτέ σε λάθος χέρια.

Για να το κάνουμε αυτό, πρέπει να κάνουμε μερικές μικρές αλλαγές στο πρόγραμμα που δημιουργήσαμε νωρίτερα.

Το πρώτο βήμα, φυσικά, είναι η εισαγωγή του SSL βιβλιοθήκη μαζί με smtplib. ο SSL Η βιβλιοθήκη σάς δίνει τη δυνατότητα δημιουργίας ασφαλούς περιβάλλοντος SSL και επικοινωνίας μέσω κρυπτογραφημένου δικτύου συνδέοντας σε συγκεκριμένες θύρες και στα δύο άκρα.

Ένα ασφαλές περιβάλλον SSL δεν είναι παρά μια συλλογή κρυπτογράφησης, εκδόσεων πρωτοκόλλου, αξιόπιστων πιστοποιητικών, επιλογών TLS και επεκτάσεων TLS.

Μετά από αυτό, μπορούμε να καθορίσουμε τη θύρα TLS και να προσθέσουμε μερικές SSL Η βιβλιοθήκη λειτουργεί για τη δημιουργία ενός ασφαλούς emailer.

Ο κωδικός, με όλες τις αλλαγές, μοιάζει με αυτό:

εισαγωγή smtplib, ssl
smtpServer = "smtp.gmail.com"
θύρα = 587
myEmail = "[email protected]"
κωδικός πρόσβασης = "my_password"
Το #email και ο κωδικός πρόσβασης μπορούν επίσης να είναι πεδία εισαγωγής χρήστη
konteks = ssl.create_default_context ()
newEmail = Από: Από άτομο
Προς: Προσωπικό
Θέμα: Δοκιμή ηλεκτρονικού ταχυδρομείου
Αυτό είναι το κύριο μέρος του email.

προσπαθήστε:
διακομιστής = smtplib. SMTP (smtpServer, θύρα)
server.starttls (περιβάλλον = πλαίσιο)
server.login (newEmail, κωδικός πρόσβασης)
εκτός από την εξαίρεση ως e:
εκτύπωση ("δεν ήταν δυνατή η αποστολή του email")
τελικά:
server.quit ()

Όπως και πριν, θα πρέπει να δημιουργήσετε και να χρησιμοποιήσετε την παρουσία SMTP σε ένα μπλοκ δοκιμής-εκτός, προκειμένου να αποφύγετε τυχόν απότομες διακοπές λειτουργίας του προγράμματος.

Τι μπορείτε να κάνετε με αυτό το σενάριο Python

Τώρα που έχετε επιλέξει την εκπληκτική και εκπληκτικά χρήσιμη ικανότητα αυτοματοποίησης email με κωδικό, μπορείτε να το εφαρμόσετε σε οποιαδήποτε πλατφόρμα που απαιτεί την αποστολή email σε μια διαφορετική λίστα αλληλογραφίας.

Από τη χρήση του στον προσωπικό σας ιστότοπο για την αποστολή αυτοματοποιημένων email επιβεβαίωσης έως τη χρήση του μέσω email για τις χριστουγεννιάτικες κάρτες ή προσκλήσεις για την οικογένεια και τους φίλους σας, οι χρήσεις αυτού του μικρού σεναρίου Python περιορίζονται μόνο από τη δική σας δημιουργικότητα.

Επίσης, αυτό είναι ένα από τα πολλά φοβερά πράγματα που μπορείτε να κάνετε με την Python. Με την πανταχού παρούσα υποστήριξη προγραμματιστών και την εύχρηστη σύνταξη, η ανάκτηση δεξιοτήτων Python δεν ήταν ποτέ πιο εύκολη.

Για να συνεχίσετε να δημιουργείτε υπέροχα πράγματα με κώδικα, ανατρέξτε στον οδηγό μας για το πώς να το κάνετε δημιουργήστε το δικό σας bot Telegram με το Python 3!

ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ
Πώς να αναβαθμίσετε τις δεξιότητες Python και AI με Keras, Pytorch, Tensorflow και άλλα

Αναβαθμίστε τις δεξιότητες προγραμματισμού και ανάπτυξης ιστού σας σε Python, Artificial Intelligence, Keras, PyTorch και άλλα

Σχετικά θέματα
  • Προγραμματισμός
  • Gmail
  • Συμβουλές μέσω email
  • Πύθων
  • Αυτοματοποίηση εργασιών
Σχετικά με τον Συγγραφέα
Yash Chellani (Δημοσιεύθηκαν 8 άρθρα)

Ο Yash είναι ένας επίδοξος φοιτητής πληροφορικής που λατρεύει να κατασκευάζει πράγματα και να γράφει για όλα τα πράγματα τεχνολογίας. Στον ελεύθερο χρόνο του, του αρέσει να παίζει σκουός, να διαβάζει ένα αντίγραφο του τελευταίου Murakami και να κυνηγά δράκους στο Skyrim.

Περισσότερα από τον Yash Chellani

Εγγραφείτε στο Newsletter μας

Εγγραφείτε στο ενημερωτικό δελτίο μας για τεχνικές συμβουλές, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!

Ένα ακόμη βήμα…!

Επιβεβαιώστε τη διεύθυνση email σας στο email που μόλις σας στείλαμε.

.