Trimiterea de e-mailuri în Python cu SMTP

Acest tutorial va oferi o introducere în SMTP, un modul Python folosit pentru trimiterea de e-mailuri. Acesta va demonstra, de asemenea, modul de trimitere a diferitelor tipuri de e-mail, cum ar fi e-mailuri simple de text, e-mailuri cu atașamente și e-mailuri cu conținut HTML.

Introducere în SMTP

Simple Mail Transfer Protocol (SMTP) gestionează trimiterea și rutarea e-mail-urilor între serverele de e-mail.

În Python, smtplib modul definește un obiect de sesiune de client SMTP care poate fi utilizat pentru a trimite poșta către orice mașină de Internet cu un daemon de ascultător SMTP sau ESMTP.

Iată cum se creează un obiect SMTP.

server smtplib de import = smtplib.SMTP (host = 'host_address', port = your_port)

Creați și trimiteți un e-mail simplu

Următorul script vă va permite să trimiteți un e-mail prin serverul SMTP Gmail. Cu toate acestea, Google nu va permite autentificarea prin intermediul smtplib deoarece a semnalat acest tip de login ca fiind "mai puțin sigur". Pentru a rezolva acest lucru, accesați https://www.google.com/settings/security/lesssecureapps în timp ce sunteți conectat (ă) la contul dvs. Google și "Permiteți aplicații mai puțin sigure". Vedeți captura de ecran de mai jos.

Vom urma următorii pași pentru a realiza acest proces:

  • Creați un obiect SMTP pentru conectarea la server.
  • Conecteaza-te la contul tau.
  • Definiți antetele mesajului și datele de conectare.
  • Creeaza o MIMEMultipart mesaj și atașați anteturile relevante, de exemplu, de la, la, și subiect.
  • Atașați mesajul la mesaj MIMEMultipart obiect.
  • În cele din urmă, trimiteți mesajul.

Acest proces este la fel de simplu ca cel prezentat mai jos.

# import pachete necesare de la email.mime.multipart import MIMEMultipart de la email.mime.text import MIMEText imt smtplib # creare mesaj mesaj instanță msg = MIMEMultipart () message = "Multumesc" # setați parametrii parolei mesajului = "parola dvs." msg ['Address '] = "Adresa ta" msg [' To '] =' to_address 'msg [' Subject '] = server server = smtplib.SMTP ('smtp.gmail.com: 587') server.starttls () # Autentificare acreditări pentru trimiterea serverului mail.login (msg ['From'], parola) # trimite mesajul prin server . server.sendmail (msg ['Din'], msg ['To'], msg.as_string ()) server.quit () print " 

Rețineți că adresele "To" și "From" trebuie să fie incluse explicit în anteturile mesajelor.

Creați și trimiteți un e-mail cu un atașament

În acest exemplu, vom trimite un e-mail cu un atașament de imagine. Procesul este similar cu trimiterea unui e-mail de text simplu.

  • Creați un obiect SMTP pentru conectarea la server.
  • Conecteaza-te la contul tau.
  • Definiți antetele mesajului și datele de conectare.
  • Creeaza o MIMEMultipart mesaj și atașați anteturile relevante, de exemplu, de la, la, și subiect.
  • Citiți și atașați imaginea la mesaj MIMEMultipart obiect.
  • În cele din urmă, trimiteți mesajul.
# send_attachment.py # importați pachetele necesare de la email.mime.multipart importați MIMEMultipart din email.MIMEImage import MIMEImage de la email.mime.text import MIMEText imt smtplib # crea mesajul de instanță msg = MIMEMultipart () # configura parametrii parolei de mesaj = "poșta" [msg '' '' = 'adresa ta' msg ['To'] = "to_address" msg ['Subject'] = .jpg ") citește ())) # create server server = smtplib.SMTP ('smtp.gmail.com: 587') server.starttls () # Autentificare acreditări pentru trimiterea serverului mail.login (msg ['From' ], parola) # trimite mesajul prin server. server.sendmail (msg ['Din'], msg ['To'], msg.as_string ()) server.quit () print " 

MIMEImage clasa este o subclasă de MIMENonMultipart care este folosit pentru a crea obiecte de mesaje MIME de tipuri de imagini.Alte clase disponibile includ
MIMEMessage și MIMEAudio.

Creați și trimiteți e-mailuri HTML

Primul lucru pe care îl vom face este să creați un șablon de e-mail HTML.

Creați un șablon HTML

Aici este codul HTML pentru șablon și conține două coloane de tabel fiecare cu o imagine și un conținut de previzualizare. Dacă preferați o soluție pregătită, profesională, luați cele mai bune șabloane de e-mail. Avem o serie de opțiuni receptive cu funcții ușor de personalizat pentru a începe.

  Tutsplus E-mail Newsletter    

Vizualizați în browser

Evanto Limited

Noiembrie 2017

Cum să te ridici și să alergi cu Vue

În postul introductiv pentru această serie am vorbit puțin despre modul în care designerii web pot beneficia prin utilizarea Vue. În acest tutorial vom învăța cum să ajungem la Vue ...

Prezentarea Haiku: Design și Creare mișcare

Având în mișcare în creștere printre dezvoltatorii de web, la fel sunt și instrumentele care ajută la eficientizarea creării sale. Haiku este un stand-alone ...

Proiectați experiențe mai bune pentru web și mobil

Dezabonați | Tweet | Vizualizați în browser

Șablonul va arăta în sfârșit astfel:

Mai jos este scriptul pentru trimiterea unui e-mail cu conținut HTML. Conținutul șablonului va fi mesajul nostru de e-mail.

import smtplib import email.message server = smtplib.SMTP ('smtp.gmail.com:587') email_content = "" "    Tutsplus E-mail Newsletter    

Vizualizați în browser

Evanto Limited

Noiembrie 2017

Cum să te ridici și să alergi cu Vue

În postul introductiv pentru această serie am vorbit puțin despre modul în care designerii web pot beneficia prin utilizarea Vue. În acest tutorial vom învăța cum să ajungem la Vue ...

Prezentarea Haiku: Design și Creare mișcare

Având în mișcare în creștere printre dezvoltatorii de web, la fel sunt și instrumentele care ajută la eficientizarea creării sale. Haiku este un stand-alone ...

Proiectați experiențe mai bune pentru web și mobil

Dezabonați | Tweet | Vizualizați în browser

"msgstr" Mesaj "msgstr" Mesaj "msgstr" Mesaj "msgstr" Mesaj "msgstr" Mesaj "msgstr" add_header ('Content-Type', 'text / html') msg.set_payload (email_content) s = smtplib.SMTP ('smtp.gmail.com: 587') s.starttls login (msg ['From'], parola) s.sendmail (msg ['Din'], [msg ['To']], msg.as_string ()

Executați codul și, dacă nu apare nici o eroare, e-mailul a avut succes. Acum du-te în căsuța dvs. poștală și ar trebui să vedeți adresa dvs. de e-mail sub formă de conținut HTML frumos formatat.

Concluzie

Acest tutorial a acoperit majoritatea a ceea ce este necesar pentru a trimite e-mailuri pentru aplicația dvs. Există mai multe API-uri disponibile pentru trimiterea de e-mailuri, deci nu trebuie să începeți de la zero, de ex. SendGrid, dar este, de asemenea, important să înțelegeți elementele de bază. Pentru mai multe informații, vizitați documentele Python.

În plus, nu ezitați să vedeți ce avem la dispoziție pentru vânzare și pentru studiul în piața Envato și vă rugăm să puneți întrebările și să oferiți feedback-ul dvs. valoros folosind feed-ul de mai jos.

Cod