Iako komercijalni klijenti e-pošte nude praktičnost korisničkog GUI-ja, često im nedostaje fleksibilnost i prilagodljivost koju mnogi programeri ili tvorci sadržaja priželjkuju za slanje e-pošte potrebe.

Bilo da ste poslali e-poštu s zahvalnošću novom pretplatniku na vašem kanalu na društvenim mrežama ili dodali funkciju e-pošte vaš najnoviji projekt, mogućnost slanja automatiziranih poruka pomoću SMTP-a u Pythonu je nešto što će sigurno doći zgodan.

Pročitajte kako biste saznali kako možete dobiti Python skriptu za slanje e-poruka koje se danas izvode na vašem računalu.

Što je SMTP?

Pojednostavljeno, SMTP ili Simple Mail Transfer Protocol komunikacijski je protokol za poslužitelje pošte za prijenos e-pošte putem Interneta.

To je sastavni dio aplikacijskog sloja TCP / IP paketa, koji je skup protokola koji se koriste za komunikaciju putem Interneta ili drugih sličnih mreža. U mreži u kojoj je implementiran SMTP, postupak poznat kao spremi i proslijedi pomaže u premještanju pošte preko mreža.

instagram viewer

Na svakoj krajnjoj točki, softver poznat kao Mail Transfer Agent (MTA) koristi spremanje i prosljeđivanje kako bi olakšao komunikaciju između SMTP poslužitelja koji sudjeluju. Stoga je glavna uloga SMTP-a jednostavno diktirati gdje i kako se pošta premješta s jedne točke na drugu u mreži.

Početak rada

Morate imati račun e-pošte koji ćete koristiti za slanje e-pošte pomoću ovog programa. To je zato što ćemo za slanje e-pošte koristiti SMTP uslugu klijenta e-pošte. Za ovaj ćemo vodič upotrebljavati Gmail.

Također možete koristiti lokalni SMTP poslužitelj za uklanjanje pogrešaka za slanje testnih poruka e-pošte, ali zasad ćemo koristiti račun e-pošte za slanje e-pošte jer je to intuitivnije.

Moguće je jednostavno upotrijebiti postojeći Gmail račun, ali dok se igrate sa svojim programom, uskoro se može napuniti testnim e-porukama. Zbog toga preporučujemo stvaranje računa za bacanje u svrhu testiranja.

Sada uključite opciju za dopuštaju manje sigurne aplikacije za pristup vašem Gmail računu. Ovo je još jedan razlog za upotrebu e-pošte za odbacivanje jer se ne preporučuje igranje s postavkama privatnosti primarne e-pošte.

Pisanje e-pošte na Pythonu

Python 3 dolazi unaprijed instaliran s modulom zvanim smtplib (skraćenica od smtp knjižnica), koji se može koristiti za rad sa SMTP poslužiteljima.

Kao i bilo koji drugi Python modul, prvo što morate učiniti je uvoziti smtplib.

uvoz smtplib

Inicijalizacija SMTP objekta

Sada možete koristiti smtplib za stvaranje SMTP objekta koji će vam pružiti većinu funkcionalnosti uobičajenog klijenta e-pošte. Međutim, funkcije SMTP objekta mogu se koristiti samo putem metoda instance. Dakle, naravno, sljedeći je korak deklariranje instance objekta.

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

Ovo konfigurira SMTP objekt za slanje e-pošte pomoću Googleovog SMTP poslužitelja.

Nakon toga odredujemo e-poštu pošiljatelja i primatelja. Evo gdje Gmail račun koji ste ranije napravili dobro dođe.

emailSender = "[email protected]"
myThroaway = "[email protected]"
emailRecipients = [myThroaway]

Ovdje treba napomenuti da je popis primatelja zapravo niz, što znači da je dizajniran za pohranu neatomskih vrijednosti. Kao rezultat, u ovo polje možete navesti i čitav popis za slanje!

Pisanje poruke

Vjerojatno najjednostavniji dio postupka, ovdje morate unijeti vrijednosti koje biste obično dodavali prilikom sastavljanja nove e-pošte. Ovo uključuje:

  • Podaci o pošiljatelju
  • Pojedinosti o primatelju
  • Predmet
  • Tijelo poruke

Ta su polja sastavljena unutar navodnika s trostrukim navodnicima i razgraničena su na sljedeći način:

newEmail = Od: Od osobe 
Za: prema osobi
Predmet: Test e-pošte
Ovo je tijelo e-pošte.

Slanje e-pošte

Napokon, naredbu sendmail možemo koristiti za slanje pošte s vašeg SMTP poslužitelja na poslužitelj primatelja.

mySMTP.sendmail (emailSender, emailRecipients, newEmail)

Sada je samo jedan posljednji korak: reorganizacija koda kako bi se spriječilo bilo kakvo predvidivo rušenje programa.

Rješavanje problema s vašim Python programom za e-poštu

Ponekad vaš SMTP poslužitelj možda neće uspjeti uspostaviti vezu s vezom primatelja ili može doći do problema s slanjem e-pošte s jednog SMTP porta na drugi. U tom se slučaju vaš program može neočekivano srušiti.

Da biste objasnili takve mogućnosti, možete upotrijebiti a pokušaj-osim blok i stavite izjave sklone pogreškama unutar probati blok. Čitav vaš program, zajedno s blokom try-osim, trebao bi izgledati otprilike ovako:

uvoz smtplib
emailSender = "[email protected]"
myThroaway = '[email protected]'
emailRecipients = [myThroaway]
newEmail = Od: Od osobe
Za: prema osobi
Predmet: Test e-pošte
Ovo je tijelo e-pošte.

probati:
smtpObj = smtplib. SMTP (‘smtp.gmail.com’)
mySMTP.sendmail (emailSender, emailRecipients, newEmail)
ispis ("E-pošta uspješno poslana!")
osim SMTPException:
print ("Pogreška: Došlo je do pogreške pri slanju e-pošte.")

Osiguravanje vaše e-pošte

Ako namjeravate koristiti Python u stvarnom okruženju za slanje e-pošte, važno je osigurati sigurnu komunikaciju na oba kraja.

Korištenje jednostavnog SMTP poslužitelja sa zadanim priključkom ne pruža nikakav sloj šifriranja komunikaciji. To znači da ako bilo koja treća strana sluša na vašoj mreži, može pristupiti vašim vjerodajnicama za prijavu i informacijama koje se nalaze u vašoj e-pošti.

Jedan od načina zaobilaženja ovog problema je upotreba protokola TLS (Transport Layer Security) za šifriranje vaše komunikacije. To je isti protokol koji koriste glavni klijenti e-pošte, poput Gmaila i Outlooka, kako bi osigurali da vaše e-adrese nikada ne padnu u pogrešne ruke.

Da bismo to učinili, moramo unijeti nekoliko manjih izmjena u program koji smo ranije stvorili.

Prvi korak je, naravno, uvoz datoteke ssl knjižnica zajedno s smtplib. The ssl Biblioteka vam daje mogućnost stvaranja sigurnog SSL konteksta i komunikacije preko šifrirane mreže povezivanjem na određene priključke na oba kraja.

Sigurni SSL kontekst nije ništa drugo nego zbirka šifri, verzije protokola, pouzdani certifikati, TLS opcije i TLS proširenja.

Nakon toga možemo odrediti TLS port i dodati nekoliko ssl funkcije knjižnice za stvaranje sigurne e-pošte.

Kôd, sa svim izvršenim izmjenama, izgleda otprilike ovako:

uvoz smtplib, ssl
smtpServer = "smtp.gmail.com"
luka = ​​587
myEmail = "[email protected]"
lozinka = "moja_parola"
#email i lozinka također mogu biti korisnička polja za unos
context = ssl.create_default_context ()
newEmail = Od: Od osobe
Za: prema osobi
Predmet: Test e-pošte
Ovo je tijelo e-pošte.

probati:
poslužitelj = smtplib. SMTP (smtpServer, priključak)
server.starttls (context = context)
server.login (newEmail, lozinka)
osim iznimke kao e:
print ("e-mail nije mogao biti poslan.")
konačno:
server.quit ()

Kao i prije, trebali biste stvoriti i koristiti SMTP instancu u bloku try-osim kako biste spriječili nagle padove programa.

Što možete učiniti s ovom Python skriptom

Sad kad ste shvatili nevjerojatnu i iznenađujuće korisnu vještinu automatizacije e-pošte pomoću koda, možete je primijeniti na bilo kojoj platformi koja zahtijeva slanje e-pošte na raznoliku mailing listu.

Od korištenja na vašem osobnom web mjestu za slanje automatskih e-poruka s potvrdom do korištenja za slanje božićnih čestitki e-poštom ili pozivnice za vašu obitelj i prijatelje, upotrebu ove male Python skripte ograničava samo vaša vlastita kreativnost.

Također, ovo je samo jedna od mnogih strašnih stvari koje možete učiniti s Pythonom. Zahvaljujući svojoj sveprisutnoj podršci za programere i sintaksi koju je lako naučiti, pokupiti Python vještinu nikada nije bilo lakše.

Da biste nastavili graditi cool stvari s kodom, pogledajte naš vodič kako to učiniti izradite svoj vlastiti Telegram bot s Pythonom 3!

E-mail
Kako nadograditi svoje Python i AI vještine pomoću Keras, Pytorch, Tensorflow i drugih

Nadogradite svoje vještine programiranja i web razvoja na Pythonu, umjetnoj inteligenciji, Kerasu, PyTorchu i mnogim drugim

Povezane teme
  • Programiranje
  • Gmail
  • Savjeti za e-poštu
  • Piton
  • Automatizacija zadataka
O autoru
Yash Chellani (Objavljeno 8 članaka)

Yash je ambiciozni student informatike koji voli graditi stvari i pisati o svim tehnologijama. U slobodno vrijeme voli igrati Squash, čitati primjerak najnovijeg Murakamija i loviti zmajeve u Skyrimu.

Više od Yash Chellanija

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!

Još jedan korak…!

Potvrdite svoju e-adresu u e-pošti koju smo vam upravo poslali.

.