Cum să trimiteți mesaje de e-mail automatizate în Python

Cum să trimiteți mesaje de e-mail automatizate în Python

În timp ce clienții comerciali de e-mail oferă confortul unei interfețe grafice ușor de utilizat, adesea le lipsește flexibilitatea și personalizarea pe care mulți dezvoltatori sau creatori de conținut le doresc pentru nevoile lor de e-mail.





Fie că ați trimis un e-mail de mulțumire unui nou abonat pe canalul dvs. de socializare sau ați adăugat funcționalitate de e-mail la cel mai recent proiect al dvs., capacitatea de a trimite mesaje automate folosind SMTP în Python este ceva ce va fi util.





Citiți mai departe pentru a afla cum puteți obține un script Python pentru a trimite e-mailuri care rulează astăzi pe computerul dvs.





Ce este SMTP?

Mai simplu spus, SMTP sau Simple Mail Transfer Protocol, este un protocol de comunicare pentru serverele de e-mail pentru a transmite e-mail prin internet.

Este o parte integrantă a stratului de aplicații al suitei TCP / IP, care este un set de protocoale utilizate pentru comunicarea prin internet sau alte rețele similare. Într-o rețea în care este implementat SMTP, un proces cunoscut sub numele de păstrați și transmiteți ajută la mutarea e-mailului în rețele.



La fiecare punct final, software-ul cunoscut sub numele de Mail Transfer Agent (MTA) utilizează stocarea și redirecționarea pentru a facilita comunicarea între serverele SMTP participante. Prin urmare, rolul principal al SMTP este pur și simplu să dicteze unde și cum se mută poșta de la un punct la altul într-o rețea.

Noțiuni de bază

Trebuie să aveți un cont de e-mail pe care să îl utilizați pentru a trimite e-mailuri folosind acest program. Acest lucru se datorează faptului că vom folosi serviciul SMTP al clientului de e-mail pentru a trimite e-mailuri. Pentru acest tutorial, vom folosi Gmail.





De asemenea, puteți utiliza un server de depanare SMTP local pentru a trimite e-mailuri de testare, dar pentru moment vom folosi un cont de e-mail pentru a trimite e-mailuri, deoarece este mai intuitiv.

Este posibil să utilizați pur și simplu un cont Gmail existent, dar pe măsură ce vă jucați cu programul dvs., este posibil să se umple în curând cu e-mailuri de testare. Acesta este motivul pentru care vă recomandăm să creați un cont „aruncabil” în scopul testării.





Acum, activați opțiunea pentru permite aplicații mai puțin sigure pentru a accesa contul dvs. Gmail. Acesta este un alt motiv pentru a utiliza un e-mail aruncat, deoarece nu este recomandat să vă jucați cu setările de confidențialitate ale e-mailului dvs. principal.

Scrierea e-mailului în Python

Python 3 vine preinstalat cu un modul numit smtplib (prescurtare pentru biblioteca smtp), care poate fi folosit pentru a lucra cu servere SMTP.

Ca orice alt modul Python, primul lucru pe care trebuie să-l faci este să importi smtplib.

import smtplib

Inițializarea unui obiect SMTP

Acum, puteți utiliza smtplib pentru a crea un obiect SMTP, care vă va oferi cea mai mare parte a funcționalității unui client de e-mail convențional. Cu toate acestea, funcțiile unui obiect SMTP pot fi utilizate numai prin metode de instanță. Deci, în mod firesc, următorul pas este să declare o instanță de obiect.

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

Aceasta configurează obiectul SMTP pentru a trimite e-mailuri utilizând serverul SMTP Google.

După aceasta, specificăm e-mailurile expeditorului și destinatarului. Aici îți este util contul Gmail pe care l-ai făcut mai devreme.

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

Un lucru de remarcat aici este că lista de destinatari este de fapt o matrice, ceea ce înseamnă că este concepută pentru a stoca valori non-atomice. Drept urmare, puteți chiar specifica o întreagă listă de corespondență în acest câmp!

Scrierea mesajului

Probabil cea mai simplă parte a procesului, aici trebuie să introduceți valori pe care le-ați adăuga în mod normal atunci când compuneți un e-mail nou. Aceasta include:

  • Detaliile expeditorului
  • Detaliile destinatarului
  • Subiect
  • Conținutul mesajului

Aceste câmpuri sunt reunite în ghilimele triple și sunt delimitate după cum urmează:

nu poate porni Windows 10 în modul sigur
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

Trimiterea e-mailului

În cele din urmă, putem utiliza comanda sendmail pentru a trimite e-mailul de pe serverul dvs. SMTP către serverul destinatarului.

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

Acum, există doar un ultim pas: reorganizarea codului pentru a preveni blocarea programului previzibil.

Depanarea programului dvs. de e-mail Python

Uneori, serverul dvs. SMTP poate să nu stabilească o conexiune cu cea a destinatarului sau poate exista o problemă cu trimiterea unui e-mail de la un port SMTP la altul. Într-un astfel de eveniment, programul dvs. s-ar putea bloca neașteptat.

Pentru a ține cont de astfel de posibilități, puteți utiliza un încercați-cu excepția blocați și puneți instrucțiunile predispuse la erori în interiorul încerca bloc. Întregul dvs. program, împreună cu blocul try-except, ar trebui să arate cam așa:

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

Securizarea e-mailurilor

Dacă intenționați să utilizați Python într-un cadru din lumea reală pentru a trimite e-mailuri, este important să vă asigurați că comunicarea este sigură la ambele capete.

Utilizarea unui server SMTP simplu cu portul implicit nu oferă niciun strat de criptare pentru comunicație. Aceasta înseamnă că, în cazul în care o terță parte ascultă în rețeaua dvs., vă poate accesa datele de conectare și informațiile conținute în e-mail.

O modalitate de a ocoli această problemă este de a utiliza protocolul TLS (Transport Layer Security) pentru a vă cripta comunicarea. Acesta este același protocol utilizat de principalii clienți de e-mail, cum ar fi Gmail și Outlook, pentru a vă asigura că e-mailurile dvs. nu cad niciodată în mâinile greșite.

Pentru a face acest lucru, trebuie să facem câteva modificări minore la programul pe care l-am creat mai devreme.

Primul pas, desigur, este să importați fișierul ssl bibliotecă împreună cu smtplib . The ssl biblioteca vă oferă posibilitatea de a crea un context SSL sigur și de a comunica printr-o rețea criptată prin conectarea la porturi specifice de la ambele capete.

Un context SSL sigur nu este altceva decât o colecție de cifre, versiuni de protocol, certificate de încredere, opțiuni TLS și extensii TLS.

După aceasta, putem specifica portul TLS și adăuga câteva ssl funcții de bibliotecă pentru a crea un e-mail sigur.

Codul, cu toate modificările făcute, arată cam așa:

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()

La fel ca înainte, ar trebui să creați și să utilizați instanța SMTP într-un bloc try-except, pentru a preveni blocarea bruscă a programului.

cum să aflați dacă Facebook-ul dvs. a fost piratat

Ce puteți face cu acest script Python

Acum că ați luat abilitatea extraordinară și surprinzător de utilă de a automatiza e-mailurile folosind codul, îl puteți aplica pe orice platformă care necesită trimiterea de e-mailuri pe o listă de discuții diversă.

De la utilizarea acestuia pe site-ul dvs. personal pentru a trimite e-mailuri automate de confirmare până la utilizarea acestuia pentru e-mailuri de Crăciun sau invitații către familia și prietenii dvs., utilizările acestui mic script Python sunt limitate doar de propria dvs. creativitate.

De asemenea, acesta este doar unul dintre multele lucruri minunate pe care le puteți face cu Python. Cu suportul său omniprezent pentru dezvoltatori și sintaxa ușor de învățat, luarea unei abilități Python nu a fost niciodată mai ușoară.

Pentru a continua să creați lucruri interesante cu cod, consultați ghidul nostru despre cum să construiește-ți propriul bot Telegram cu Python 3 !

Acțiune Acțiune Tweet E-mail Cum să vă actualizați abilitățile Python și AI cu Keras, Pytorch, Tensorflow și multe altele

Actualizați abilitățile de programare și dezvoltare web pe Python, Inteligență artificială, Keras, PyTorch și multe altele

Citiți în continuare
Subiecte asemănătoare
  • Programare
  • Gmail
  • Sfaturi pentru e-mail
  • Piton
  • Automatizarea sarcinilor
Despre autor Yash Chellani(10 articole publicate)

Yash este un student aspirant la informatică, căruia îi place să construiască lucruri și să scrie despre toate lucrurile tehnologice. În timpul liber, îi place să joace Squash, să citească o copie a ultimului Murakami și să vâneze dragoni în Skyrim.

Mai multe de la Yash Chellani

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Faceți clic aici pentru a vă abona