Kako pošiljati samodejna e -poštna sporočila v Pythonu

Kako pošiljati samodejna e -poštna sporočila v Pythonu

Medtem ko komercialni e-poštni odjemalci ponujajo udobje uporabniku prijaznega grafičnega vmesnika, jim pogosto primanjkuje prožnosti in prilagodljivosti, ki si jo mnogi razvijalci ali ustvarjalci vsebin želijo za svoje potrebe po e-pošti.





Naj gre za pošiljanje zahvalnega e -poštnega sporočila novemu naročniku na vašem kanalu v družabnih medijih ali dodajanje e -poštnih funkcij v vaš zadnji projekt, možnost pošiljanja avtomatiziranih sporočil prek SMTP v Pythonu je nekaj, kar vam bo zagotovo prišlo prav.





Preberite, če želite izvedeti, kako lahko dobite skript Python za pošiljanje e -poštnih sporočil, ki se izvajajo na vašem računalniku danes.





Kaj je SMTP?

Preprosto povedano, SMTP ali Simple Mail Transfer Protocol je komunikacijski protokol za poštne strežnike za prenos e -pošte po internetu.

Je sestavni del aplikacijskega sloja paketa TCP/IP, ki je niz protokolov, ki se uporabljajo za komunikacijo po internetu ali drugih podobnih omrežjih. V omrežju, kjer je implementiran SMTP, je postopek znan kot shrani in naprej pomaga pri premikanju pošte po omrežjih.



Na vsaki končni točki programska oprema, znana kot agent za prenos pošte (MTA), uporablja shranjevanje in posredovanje za olajšanje komunikacije med sodelujočimi strežniki SMTP. Glavna vloga SMTP je torej preprosto določiti, kam in kako se pošta premika od ene točke do druge v omrežju.

Začetek

Za pošiljanje e -poštnih sporočil s tem programom morate imeti e -poštni račun. To je zato, ker bomo za pošiljanje e -pošte uporabljali storitev SMTP e -poštnega odjemalca. Za to vadbo bomo uporabljali Gmail.





Za pošiljanje testnih e -poštnih sporočil lahko uporabite tudi lokalni strežnik za odpravljanje napak SMTP, vendar bomo za pošiljanje e -poštnih sporočil zaenkrat uporabljali e -poštni račun, saj je bolj intuitiven.

Možno je preprosto uporabiti obstoječi račun za Gmail, vendar se lahko med igranjem s programom kmalu napolni s testnimi e -poštnimi sporočili. Zato priporočamo, da za namene testiranja ustvarite račun za 'zavrnitev'.





Zdaj vklopite možnost za omogočajo manj varne aplikacije za dostop do računa Gmail. To je še en razlog za uporabo zavržljive e -pošte, saj ni priporočljivo, da se igrate z nastavitvami zasebnosti svojega primarnega e -poštnega sporočila.

Pisanje e -pošte v Pythonu

Python 3 je vnaprej nameščen z modulom, imenovanim smtplib (okrajšava za knjižnico smtp), ki ga je mogoče uporabiti za delo s strežniki SMTP.

Kot vsak drug modul Python je prva stvar, ki jo morate narediti, uvoz smtplib.

import smtplib

Inicializiranje objekta SMTP

Zdaj lahko s smtplibom ustvarite objekt SMTP, ki vam bo zagotovil večino funkcionalnosti običajnega e -poštnega odjemalca. Vendar pa lahko funkcije objekta SMTP uporabljate samo prek metod primerkov. Seveda je naslednji korak razglasitev primerka objekta.

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

To konfigurira objekt SMTP za pošiljanje e -pošte z Googlovim strežnikom SMTP.

Nato določimo e -poštna sporočila pošiljatelja in prejemnika. Tukaj vam pride prav Gmail račun, ki ste ga ustvarili prej.

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

Tu je treba opozoriti, da je seznam prejemnikov pravzaprav matrika, kar pomeni, da je zasnovan za shranjevanje neatomskih vrednosti. Posledično lahko v tem polju celo navedete celoten poštni seznam!

Pisanje sporočila

Verjetno najbolj enostaven del procesa, tukaj morate vnesti vrednosti, ki bi jih običajno dodali pri sestavljanju novega e -poštnega sporočila. To vključuje:

  • Podrobnosti pošiljatelja
  • Podrobnosti o prejemniku
  • Zadeva
  • Telo sporočila

Ta polja so sestavljena znotraj trojnih narekovajev in so razmejena na naslednji način:

premaknite aplikacije na SD kartico android
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

Pošiljanje e -pošte

Nazadnje lahko z ukazom sendmail pošljemo pošto iz vašega strežnika SMTP na strežnik prejemnika.

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

Zdaj je le še zadnji korak: preureditev kode, da se preprečijo morebitne zrušitve programa.

Odpravljanje težav z e -poštnim programom Python

Včasih vaš strežnik SMTP morda ne vzpostavi povezave s prejemnikovo povezavo ali pa pride do težave pri pošiljanju e -pošte z enega porta SMTP na drugega. V takem primeru se lahko vaš program nepričakovano zruši.

Če želite upoštevati takšne možnosti, uporabite a poskusi-razen blok in vnesite izjave, ki so nagnjene k napakam poskusite blok. Celoten program skupaj z blokom try-except bi moral izgledati nekako tako:

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

Zaščita e -pošte

Če nameravate uporabljati Python v realnem okolju za pošiljanje e-pošte, je pomembno, da se prepričate, da je komunikacija na obeh koncih varna.

Uporaba preprostega strežnika SMTP s privzetimi vrati ne zagotavlja nobene šifrirne plasti za komunikacijo. To pomeni, da lahko v vašem omrežju prisluhne kateri koli tretji osebi, ki dostopa do vaših poverilnic za prijavo in informacij v vašem e-poštnem sporočilu.

Eden od načinov za izogibanje tej težavi je uporaba protokola TLS (Transport Layer Security) za šifriranje vaše komunikacije. To je isti protokol, ki ga uporabljajo veliki e -poštni odjemalci, kot sta Gmail in Outlook, da bi zagotovili, da vaša e -poštna sporočila nikoli ne pridejo v napačne roke.

Če želite to narediti, moramo v program, ki smo ga ustvarili prej, narediti nekaj manjših sprememb.

Prvi korak je seveda uvoz ssl knjižnico skupaj z smtplib . The ssl knjižnica vam omogoča ustvarjanje varnega konteksta SSL in komuniciranje prek šifriranega omrežja s povezovanjem na določena vrata na obeh koncih.

Varni kontekst SSL ni nič drugega kot zbirka šifri, različic protokolov, zaupanja vrednih potrdil, možnosti TLS in razširitev TLS.

Po tem lahko določimo vrata TLS in dodamo nekaj ssl knjižnice za ustvarjanje varnega e -poštnega sporočila.

Koda z vsemi opravljenimi spremembami izgleda nekako takole:

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

Kot prej morate ustvariti in uporabiti primerek SMTP v bloku try-except, da preprečite nenadne zrušitve programa.

prenesite brezplačne video posnetke in glasbo z youtube

Kaj lahko storite s tem skriptom Python

Zdaj, ko ste pridobili neverjetno in presenetljivo uporabno veščino avtomatizacije e -poštnih sporočil s kodo, jo lahko uporabite za katero koli platformo, ki zahteva pošiljanje e -poštnih sporočil na raznolik poštni seznam.

Od tega, da ga uporabljate na svojem osebnem spletnem mestu za pošiljanje samodejnih potrditvenih e -poštnih sporočil, da ga uporabljate za pošiljanje božičnih voščilnic ali vabil svoji družini in prijateljem, je uporaba tega majhnega skripta Python omejena le z vašo ustvarjalnostjo.

Prav tako je to le ena od mnogih super stvari, ki jih lahko naredite s Pythonom. Zaradi vseprisotne podpore za razvijalce in enostavne sintakse pridobivanje veščine Python še nikoli ni bilo lažje.

Če želite še naprej ustvarjati kul stvari s kodo, si oglejte naš vodnik, kako zgradite svojega lastnega Telegram bota s Pythonom 3 !

Deliti Deliti Cvrkutati E-naslov Kako nadgraditi svoje sposobnosti Pythona in AI s Keras, Pytorch, Tensorflow in drugimi

Nadgradite svoje znanje programiranja in spletnega razvoja na Pythonu, Umetni inteligenci, Kerasu, PyTorchu in drugih

Preberite Naprej
Sorodne teme
  • Programiranje
  • Gmail
  • Nasveti po e -pošti
  • Python
  • Avtomatizacija opravil
O avtorju Yash Chellani(10 objavljenih člankov)

Yash je ambiciozen študent računalništva, ki rad gradi stvari in piše o vseh stvareh tehnologije. V prostem času se rad igra Squash, bere kopijo najnovejšega Murakamija in lovi zmaje v Skyrimu.

Več od Yash Chellani

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e -knjige in ekskluzivne ponudbe!

Kliknite tukaj, če se želite naročiti