Kako slati automatizirane poruke e -pošte u Pythonu

Kako slati automatizirane poruke e -pošte u Pythonu

Iako komercijalni klijenti e-pošte nude praktičnost korisničkog sučelja, često im nedostaje fleksibilnosti i prilagodljivosti koje mnogi programeri ili kreatori sadržaja žele za svoje potrebe e-pošte.





Bilo da se radi o slanju zahvalnice novom pretplatniku na vašem kanalu društvenih medija ili dodavanju funkcionalnosti e -pošte vašem najnovijem projektu, mogućnost slanja automatiziranih poruka pomoću SMTP -a u Pythonu nešto će vam dobro doći.





Čitajte dalje kako biste saznali kako možete dobiti Python skriptu za slanje e -pošte na vašem računalu danas.





Što je SMTP?

Jednostavnije rečeno, SMTP ili Simple Mail Transfer Protocol je komunikacijski protokol za poslužitelje pošte za prijenos e -pošte putem interneta.

Sastavni je dio aplikacijskog sloja paketa TCP/IP, 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, proces poznat kao pohraniti i proslijediti pomaže u premještanju pošte po mrežama.



Na svakoj krajnjoj točki softver poznat kao Alat za prijenos pošte (MTA) koristi spremanje i prosljeđivanje radi olakšavanja komunikacije između sudjelujućih SMTP poslužitelja. Glavna je uloga SMTP -a, dakle, jednostavno diktirati gdje i kako se pošta kreće 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 koristiti SMTP uslugu klijenta e -pošte za slanje e -pošte. Za ovaj vodič koristit ćemo Gmail.





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

Moguće je jednostavno koristiti postojeći Gmail račun, ali dok se igrate sa svojim programom, uskoro bi se mogao napuniti testnim e -porukama. Zato preporučujemo stvaranje „bacanja“ računa 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 korištenje e -pošte za bacanje jer se ne preporučuje igrati s postavkama privatnosti vaše primarne e -pošte.

Pisanje e -pošte u Pythonu

Python 3 dolazi unaprijed instaliran s modulom pod nazivom smtplib (kratica od smtp library), koji se može koristiti za rad sa SMTP poslužiteljima.

Kao i svaki drugi Python modul, prvo što morate učiniti je uvesti smtplib.

import smtplib

Inicijalizacija SMTP objekta

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

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

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

Nakon toga određujemo e -poštu pošiljatelja i primatelja. Ovdje vam dobro dođe Gmail račun koji ste ranije napravili.

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

Ovdje treba napomenuti da je popis primatelja zapravo niz, što znači da je dizajniran za pohranu neatomskih vrijednosti. Kao rezultat toga, u ovom polju možete čak navesti cijelu popis adresa!

Pisanje poruke

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

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

Ova polja su sastavljena unutar trostrukih navodnika i razgraničena su na sljedeći način:

Windows media player Windows 10 64 bit
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

Slanje e -pošte

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

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

Sada postoji samo jedan posljednji korak: ponovno organiziranje koda kako bi se spriječili svi predvidljivi padovi programa.

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

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 slučaju vaš bi se program mogao neočekivano srušiti.

Da biste uzeli u obzir takve mogućnosti, možete koristiti a pokušaj-osim blokirati i staviti izjave sklone pogreškama u probati blok. Cijeli vaš program, zajedno s blokom try-except, trebao bi izgledati otprilike ovako:

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štita vaše e -pošte

Ako namjeravate koristiti Python u stvarnom okruženju za slanje e-pošte, važno je pobrinuti se da komunikacija bude sigurna na oba kraja.

Korištenje jednostavnog SMTP poslužitelja sa zadanim portom ne daje nikakav sloj za šifriranje komunikaciji. To znači da ako bilo koja treća strana sluša vašu mrežu, ona može pristupiti vašim vjerodajnicama za prijavu i podacima sadržanim u vašoj e-pošti.

Jedan od načina zaobilaženja ovog problema je korištenje protokola TLS (Transport Layer Security) za šifriranje vaše komunikacije. Ovo je isti protokol koji koriste veliki klijenti e -pošte kao što su Gmail i Outlook kako bi osigurali da vaša e -pošta nikada ne padne u pogrešne ruke.

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

Naravno, prvi korak je uvoz ssl knjižnica zajedno s smtplib . The ssl library pruža vam mogućnost stvaranja sigurnog SSL konteksta i komunikacije preko šifrirane mreže povezivanjem na određene portove na oba kraja.

Sigurni SSL kontekst nije ništa drugo do zbirka šifri, verzija protokola, pouzdanih certifikata, TLS opcija i TLS proširenja.

Nakon toga možemo odrediti TLS port i dodati nekoliko ssl knjižnice radi stvaranja sigurnog e -pošte.

Kod, sa svim unesenim izmjenama, izgleda otprilike ovako:

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

Kao i prije, trebali biste stvoriti i koristiti SMTP instancu u bloku try-except kako biste spriječili bilo kakve iznenadne rušenja programa.

najbolja podcast aplikacija za Windows 10

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

Sada kada ste stekli sjajnu 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 raznoliki popis adresa.

Od korištenja na vašoj osobnoj web stranici za slanje automatiziranih e -poruka s potvrdom do e -pošte za slanje božićnih čestitki ili pozivnica svojoj obitelji i prijateljima, korištenje ove male skripte Python ograničeno je samo vašom kreativnošću.

Također, ovo je samo jedna od mnogih sjajnih stvari koje možete učiniti s Pythonom. Sa sveprisutnom podrškom za programere i sintaksom koja se lako uči, usvajanje vještine Pythona nikada nije bilo lakše.

Da biste nastavili stvarati cool stvari s kodom, pogledajte naš vodič o tome kako izgradite vlastiti Telegram bot s Pythonom 3 !

Udio Udio Cvrkut E -pošta Kako nadograditi svoje vještine Pythona i umjetne inteligencije s Keras, Pytorch, Tensorflow i drugim

Nadogradite svoje vještine programiranja i web razvoja na Pythonu, Umjetnoj inteligenciji, Kerasu, PyTorchu i još mnogo toga

Pročitajte Dalje
Povezane teme
  • Programiranje
  • Gmail
  • Savjeti za e -poštu
  • Piton
  • Automatizacija zadataka
O autoru Yash Chellani(10 objavljenih članaka)

Yash je ambiciozni student informatike koji voli graditi stvari i pisati o svim stvarima tehnologije. U slobodno vrijeme voli igrati skvoš, č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!

Kliknite ovdje za pretplatu