În timp ce clienții comerciali de e-mail oferă confortul unei interfețe grafice ușor de utilizat, deseori le lipsește flexibilitate și personalizare pe care mulți dezvoltatori sau creatori de conținut le doresc pentru e-mailurile lor are nevoie.
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., abilitatea de a trimite mesaje automate folosind SMTP în Python este ceva ce va trebui să intre la indemana.
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-mailuri pe 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 dintr-un punct în altul dintr-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 local de depanare SMTP 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., s-ar putea 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 = „[email protected]”
myThroaway = "[email protected]"
emailRecipients = [myThroaway]
Un lucru de reținut 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 astfel:
newEmail = De la: De la persoană
Către: Către persoană
Subiect: Test e-mail
Acesta este corpul e-mailului.
Trimiterea e-mailului
În cele din urmă, putem folosi 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 introduceți instrucțiunile predispuse la erori în încerca bloc. Întregul dvs. program, împreună cu blocul try-except, ar trebui să arate cam așa:
import smtplib
emailSender = „[email protected]”
myThroaway = ‘[email protected]’
emailRecipients = [myThroaway]
newEmail = De la: De la persoană
Către: Către persoană
Subiect: Test e-mail
Acesta este corpul e-mailului.
încerca:
smtpObj = smtplib. SMTP („smtp.gmail.com”)
mySMTP.sendmail (emailSender, emailRecipients, newEmail)
print („E-mailul a fost trimis cu succes!”)
cu excepția excepției SMTP:
print („Eroare: a apărut o eroare la trimiterea e-mailului.”)
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 utilizarea protocolului TLS (Transport Layer Security) pentru a vă cripta comunicația. Acesta este același protocol folosit 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 anterior.
Primul pas, desigur, este să importați fișierul ssl bibliotecă împreună cu smtplib. 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 = "[email protected]"
parola = "parola_mea"
#email și parola pot fi, de asemenea, câmpuri de introducere a utilizatorului
context = ssl.create_default_context ()
newEmail = De la: De la persoană
Către: Către persoană
Subiect: Test e-mail
Acesta este corpul e-mailului.
încerca:
server = smtplib. SMTP (smtpServer, port)
server.starttls (context = context)
server.login (e-mail nou, parolă)
cu excepția excepției ca e:
print („e-mailul nu a putut fi trimis.”)
in cele din urma:
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.
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 la 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 a trimite e-mailuri de Crăciun sau invitații către familia și prietenii tăi, utilizările acestui mic script Python sunt limitate doar de a ta 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ă construiți lucruri interesante cu cod, consultați ghidul nostru despre cum să construiește-ți propriul bot Telegram cu Python 3!
Actualizați abilitățile de programare și dezvoltare web pe Python, Inteligență artificială, Keras, PyTorch și multe altele
- Programare
- Gmail
- Sfaturi pentru e-mail
- Piton
- Automatizarea sarcinilor
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.
Aboneaza-te la newsletter-ul nostru
Alăturați-vă newsletterului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!
Încă un pas…!
Vă rugăm să confirmați adresa de e-mail în e-mailul pe care tocmai vi l-am trimis.