Medtem ko komercialni e-poštni odjemalci ponujajo udobje uporabniku prijaznega GUI, jim tega pogosto primanjkuje prilagodljivost in prilagodljivost, ki si jo mnogi razvijalci ali ustvarjalci vsebin želijo po elektronski pošti potrebe.
Najsi bo to, da boste novemu naročniku na svojem kanalu v družabnih omrežjih poslali e-poštno sporočilo z zahvalo ali dodali e-poštne funkcije vaš najnovejši projekt je zmožnost pošiljanja samodejnih sporočil s pomočjo SMTP v Pythonu nekaj, kar bo zagotovo prišlo priročen.
Preberite, kako lahko dobite skript Python za pošiljanje e-poštnih sporočil, ki se danes izvajajo na vašem računalniku.
Kaj je SMTP?
Preprosto povedano, SMTP ali Simple Mail Transfer Protocol je komunikacijski protokol za pošiljanje poštnih strežnikov prek interneta.
Je sestavni del aplikacijskega sloja zbirke TCP / IP, ki je nabor protokolov, ki se uporabljajo za komunikacijo prek interneta ali drugih podobnih omrežij. V omrežju, kjer se izvaja SMTP, je postopek, znan kot shranjevanje in naprej pomaga premikati pošto po omrežjih.
Na vsaki končni točki programska oprema, znana kot Mail Transfer Agent (MTA), uporablja shrambo in naprej, da olajša komunikacijo med sodelujočimi strežniki SMTP. Glavna vloga SMTP je torej preprosto narekovati, kje in kako se pošta premika od ene točke do druge v omrežju.
Kako začeti
Za pošiljanje e-pošte 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 vadnico bomo uporabljali Gmail.
Za pošiljanje preizkusnih e-poštnih sporočil lahko uporabite tudi lokalni strežnik za odpravljanje napak SMTP, za zdaj pa bomo za pošiljanje e-poštnih sporočil uporabljali e-poštni račun, saj je bolj intuitiven.
Mogoče je preprosto uporabiti obstoječi Gmailov račun, toda ko se poigrate s svojim programom, se lahko kmalu napolni s testnimi e-poštnimi sporočili. Zato priporočamo, da za namene testiranja ustvarite račun za »vrganje«.
Zdaj vklopite možnost omogočajo manj varne aplikacije za dostop do Gmailovega računa. To je še en razlog za uporabo e-poštnega sporočila, ki ga želite vrniti, saj ni priporočljivo, da se poigravate z nastavitvami zasebnosti primarnega e-poštnega naslova.
Pisanje e-pošte v Pythonu
Python 3 je vnaprej nameščen z modulom smtplib (okrajšava za knjižnico smtp), ki se lahko uporablja za delo s strežniki SMTP.
Kot kateri koli drug modul Python je tudi prva stvar, ki jo morate storiti, uvoziti smtplib.
uvozi smtplib
Inicializacija predmeta SMTP
Zdaj lahko s pomočjo smtplib ustvarite objekt SMTP, ki vam bo zagotovil večino funkcionalnosti običajnega e-poštnega odjemalca. Funkcije objekta SMTP pa je mogoče uporabljati samo z metodami primerka. Torej je seveda naslednji korak razglasitev primerka predmeta.
mySMTP = smtplib. SMTP ("smtp.google.com")
To konfigurira objekt SMTP za pošiljanje e-pošte z Googlovim strežnikom SMTP.
Po tem določimo e-poštna sporočila pošiljatelja in prejemnika. Tu je prišel prav račun Gmail, ki ste ga ustvarili prej.
emailSender = “[email protected]”
myThroaway = "[email protected]"
emailRecipients = [myThroaway]
Tu je treba omeniti, da je seznam prejemnikov dejansko matrika, kar pomeni, da je zasnovan za shranjevanje neatomskih vrednosti. Posledično lahko v tem polju določite celoten poštni seznam!
Pisanje sporočila
Verjetno najbolj neposreden del postopka, tu morate vnesti vrednosti, ki bi jih običajno dodali pri sestavljanju novega e-poštnega sporočila. To vključuje:
- Podrobnosti pošiljatelja
- Podrobnosti prejemnika
- Predmet
- Telo sporočila
Ta polja so sestavljena znotraj trojnih narekovajev in so razmejena na naslednji način:
newEmail = Od: Od osebe
Za: Osebi
Zadeva: Preizkus e-pošte
To je telo e-poštnega sporočila.
Pošiljanje e-pošte
Na koncu lahko z ukazom sendmail pošljemo pošto s strežnika SMTP na prejemnikov strežnik.
mySMTP.sendmail (emailSender, emailRecipients, newEmail)
Zdaj je samo še zadnji korak: reorganizacija kode, da preprečimo predvidljive zrušitve programa.
Odpravljanje težav z e-poštnim programom Python
Včasih strežnik SMTP morda ne bo vzpostavil povezave s prejemnikom ali pa bo prišlo do težave pri pošiljanju e-pošte z enega vhoda SMTP na drugo. V takem primeru se lahko vaš program nepričakovano zruši.
Če želite upoštevati takšne možnosti, lahko uporabite a poskusite razen in vstavite stavke, ki so nagnjeni k napakam poskusite blok. Vaš celoten program, skupaj z blokom try-osim, mora biti videti nekako takole:
uvozi smtplib
emailSender = “[email protected]”
myThroaway = '[email protected]'
emailRecipients = [myThroaway]
newEmail = Od: Od osebe
Za: Osebi
Zadeva: Preizkus e-pošte
To je telo e-poštnega sporočila.
poskusite:
smtpObj = smtplib. SMTP (‘smtp.gmail.com’)
mySMTP.sendmail (emailSender, emailRecipients, newEmail)
print (»E-pošta je bila uspešno poslana!«)
razen SMTPException:
print ("Napaka: Pri pošiljanju e-pošte je prišlo do napake.")
Zaščita vaših e-poštnih sporočil
Če nameravate Python uporabljati v resničnem okolju za pošiljanje e-pošte, je pomembno, da zagotovite varno komunikacijo na obeh koncih.
Uporaba preprostega strežnika SMTP s privzetimi vrati komunikaciji ne zagotavlja nobenega šifrirnega sloja. To pomeni, da lahko v vašem omrežju posluša katera koli tretja oseba, ki lahko dostopa do vaših poverilnic za prijavo in informacij, ki jih vsebuje vaš e-poštni naslov.
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 večji e-poštni odjemalci, kot sta Gmail in Outlook, da zagotovite, da vaša e-poštna sporočila nikoli ne pridejo v napačne roke.
Za to moramo v program, ki smo ga prej ustvarili, narediti nekaj manjših sprememb.
Prvi korak je seveda uvoz datoteke ssl knjižnica 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 šifer, različice protokola, zaupanja vredna potrdila, možnosti TLS in razširitve TLS.
Po tem lahko določimo vrata TLS in jih dodamo nekaj ssl funkcije knjižnice za ustvarjanje varnega e-poštnega sporočila.
Koda je z vsemi spremembami videti nekako takole:
uvoz smtplib, ssl
smtpServer = "smtp.gmail.com"
pristanišče = 587
myEmail = "[email protected]"
geslo = "my_password"
# e-pošta in geslo sta lahko tudi vnosna polja uporabnika
context = ssl.create_default_context ()
newEmail = Od: Od osebe
Za: Osebi
Zadeva: Preizkus e-pošte
To je telo e-poštnega sporočila.
poskusite:
strežnik = smtplib. SMTP (smtpServer, vrata)
server.starttls (context = context)
server.login (newEmail, geslo)
razen izjeme kot e:
print ("e-poštnega sporočila ni bilo mogoče poslati.")
končno:
server.quit ()
Kot prej bi morali primer SMTP ustvariti in uporabiti v poskusu razen bloka, da preprečite nenadne zrušitve programa.
Kaj lahko storite s tem skriptom Python
Zdaj, ko ste se naučili izjemne in presenetljivo koristne veščine avtomatizacije e-poštnih sporočil s kodo, jo lahko uporabite na kateri koli platformi, ki zahteva pošiljanje e-poštnih sporočil na različen poštni seznam.
Od uporabe na vašem osebnem spletnem mestu do pošiljanja samodejnih potrdilnih e-poštnih sporočil do uporabe po e-pošti za božične voščilnice ali povabila družini in prijateljem, je uporaba tega majhnega skripta Python omejena samo na vas ustvarjalnost.
Tudi to je le ena izmed mnogih čudovitih stvari, ki jih lahko naredite s Pythonom. Z vseprisotno podporo za razvijalce in sintakso, ki se je enostavno naučiti, pobiranje Pythonove veščine še nikoli ni bilo lažje.
Če želite še naprej graditi kul stvari s kodo, si oglejte naš vodnik zgradite svojega lastnega telegramskega bota s Pythonom 3!
Nadgradite svoje veščine programiranja in spletnega razvoja na Pythonu, Umetni inteligenci, Keras, PyTorch in drugih
- Programiranje
- Gmail
- Nasveti po e-pošti
- Python
- Avtomatizacija opravil
Yash je ambiciozen študent računalništva, ki rad gradi stvari in piše o vseh tehničnih stvareh. V prostem času rad igra Squash, bere kopijo najnovejših Murakamijev in lovi zmaje v Skyrimu.
Naročite se na naše novice
Pridružite se našemu glasilu za tehnične nasvete, preglede, brezplačne e-knjige in ekskluzivne ponudbe!
Še en korak…!
Potrdite svoj e-poštni naslov v e-poštnem sporočilu, ki smo vam ga pravkar poslali.