Πώς να στείλετε αυτόματα μηνύματα ηλεκτρονικού ταχυδρομείου στην Python

Πώς να στείλετε αυτόματα μηνύματα ηλεκτρονικού ταχυδρομείου στην Python

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





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





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





Τι είναι το SMTP;

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

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



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

Ξεκινώντας

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





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

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





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

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

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

Όπως κάθε άλλη ενότητα Python, το πρώτο πράγμα που πρέπει να κάνετε είναι να εισαγάγετε 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]

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

Γράφοντας το Μήνυμα

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

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

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

εξαίρεση υπηρεσίας συστήματος windows 10 μπλε οθόνης
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

Αποστολή του Email

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

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

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

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

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

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

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.')

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

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

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

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

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

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

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

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

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

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 σε ένα μπλοκ try-εκτός για να αποφύγετε τυχόν απότομες διακοπές του προγράμματος.

πώς να δημιουργήσετε έναν δεύτερο λογαριασμό στο instagram

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

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

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

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

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

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

Αναβαθμίστε τις δεξιότητές σας προγραμματισμού και ανάπτυξης ιστοσελίδων σε Python, Τεχνητή Νοημοσύνη, Keras, PyTorch και πολλά άλλα

Διαβάστε Επόμενο
Σχετικά θέματα
  • Προγραμματισμός
  • Gmail
  • Συμβουλές για το ηλεκτρονικό ταχυδρομείο
  • Πύθων
  • Αυτοματοποίηση εργασιών
Σχετικά με τον Συγγραφέα Γιάς Τσελάνι(Δημοσιεύθηκαν 10 άρθρα)

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

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

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

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

Κάντε κλικ εδώ για εγγραφή