Hoci komerční e-mailoví klienti ponúkajú pohodlie užívateľsky prívetivého grafického používateľského rozhrania, často im chýba flexibilita a prispôsobiteľnosť, ktorú mnohí vývojári alebo tvorcovia obsahu požadujú pre svoje e-mailové adresy potreby.

Či už ide o zaslanie e-mailu s poďakovaním novému predplatiteľovi na vašom kanáli sociálnych médií alebo o pridanie e-mailovej funkcie váš najnovší projekt, schopnosť odosielať automatizované správy pomocou SMTP v Pythone je niečo, čo určite príde praktický.

Čítajte ďalej a dozviete sa, ako môžete dnes získať skript v jazyku Python na odosielanie e-mailov bežiacich na vašom počítači.

Čo je SMTP?

Zjednodušene povedané, SMTP alebo Simple Mail Transfer Protocol je komunikačný protokol pre poštové servery na prenos e-mailov cez internet.

Je neoddeliteľnou súčasťou aplikačnej vrstvy balíka TCP / IP, čo je sada protokolov používaných na komunikáciu cez internet alebo iné podobné siete. V sieti, kde je implementovaný SMTP, je proces známy ako skladovať a posielať ďalej pomáha presúvať poštu naprieč sieťami.

instagram viewer

V každom koncovom bode používa softvér známy ako Mail Transfer Agent (MTA) ukladanie a odovzdávanie na uľahčenie komunikácie medzi zúčastnenými servermi SMTP. Hlavnou úlohou protokolu SMTP je preto jednoducho diktovať, kde a ako sa pošta v sieti pohybuje z jedného bodu do druhého.

Začíname

Na odosielanie e-mailov pomocou tohto programu musíte mať e-mailový účet. Je to tak preto, že na odosielanie e-mailov budeme používať službu SMTP e-mailového klienta. V tejto príručke budeme používať službu Gmail.

Na posielanie testovacích e-mailov môžete tiež použiť miestny server na ladenie SMTP, ale zatiaľ budeme na posielanie e-mailov používať e-mailový účet, ktorý je intuitívnejší.

Je možné jednoducho použiť existujúci účet Gmail, ale keď sa budete hrať so svojím programom, čoskoro sa môže zaplniť testovacími e-mailmi. Z tohto dôvodu vám odporúčame vytvoriť účet „vyhodenia“ na účely testovania.

Teraz zapnite možnosť na povoľte menej bezpečné aplikácie na prístup do vášho účtu Gmail. To je ďalší dôvod, prečo používať jednorazový e-mail, pretože sa neodporúča hrať si s nastaveniami ochrany súkromia vášho primárneho e-mailu.

Písanie e-mailov v jazyku Python

Python 3 je predinštalovaný s modulom s názvom smtplib (skratka pre knižnicu smtp), ktorý je možné použiť na prácu so servermi SMTP.

Rovnako ako každý iný modul v Pythone, musíte najskôr importovať smtplib.

import smtplib

Inicializuje sa objekt SMTP

Teraz môžete pomocou smtplib vytvoriť objekt SMTP, ktorý vám poskytne väčšinu funkcií bežného e-mailového klienta. Funkcie objektu SMTP je však možné použiť iba pomocou inštančných metód. Ďalším krokom je teda prirodzene deklarácia inštancie objektu.

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

Týmto sa nakonfiguruje objekt SMTP na odosielanie e-mailov pomocou servera SMTP spoločnosti Google.

Potom určíme e-maily odosielateľa a príjemcu. Tu vám príde vhod účet Gmail, ktorý ste si vytvorili predtým.

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

Tu je potrebné poznamenať, že zoznam príjemcov je vlastne pole, čo znamená, že je navrhnutý na ukladanie iných ako atómových hodnôt. Výsledkom je, že v tomto poli môžete dokonca určiť celý zoznam adries.

Písanie správy

Pravdepodobne najpriamejšia časť procesu, tu musíte zadať hodnoty, ktoré by ste normálne pridali pri vytváraní nového e-mailu. Toto zahŕňa:

  • Podrobnosti odosielateľa
  • Údaje o príjemcovi
  • Predmet
  • Telo správy

Tieto polia sú spojené do trojitých úvodzoviek a sú vymedzené takto:

newEmail = Od: Od osoby 
Komu: Osobe
Predmet: E-mailový test
Toto je telo e-mailu.

Posielanie e-mailov

Nakoniec môžeme použiť príkaz sendmail na odoslanie pošty z vášho servera SMTP na server príjemcu.

mySMTP.sendmail (emailSender, emailRecipients, newEmail)

Teraz je tu len jeden posledný krok: reorganizácia kódu, aby sa zabránilo predvídateľným zlyhaniam programu.

Riešenie problémov s e-mailovým programom Python

Váš server SMTP nemusí niekedy nadviazať spojenie s príjemcom alebo sa môže vyskytnúť problém s odoslaním e-mailu z jedného portu SMTP na druhý. V takom prípade môže váš program neočakávane zlyhať.

Na zohľadnenie týchto možností môžete použiť a skús - okrem blok a vložte výroky náchylné na chyby do skús blokovať. Celý váš program by mal spolu s blokom try-kromě vyzerať takto:

import smtplib
emailSender = “[email protected]
myThroaway = ‘[email protected]
emailRecipients = [myThroaway]
newEmail = Od: Od osoby
Komu: Osobe
Predmet: E-mailový test
Toto je telo e-mailu.

skúste:
smtpObj = smtplib. SMTP („smtp.gmail.com“)
mySMTP.sendmail (emailSender, emailRecipients, newEmail)
tlač („E-mail bol úspešne odoslaný!“)
okrem výnimky SMTP:
print („Chyba: Pri odosielaní vášho e-mailu sa vyskytla chyba.“)

Zabezpečenie vašich e-mailov

Ak máte v úmysle používať Python v reálnom prostredí na odosielanie e-mailov, je dôležité zabezpečiť, aby bola komunikácia na oboch koncoch bezpečná.

Používanie jednoduchého servera SMTP s predvoleným portom neposkytuje komunikácii žiadnu šifrovaciu vrstvu. To znamená, že ak tretia strana vo vašej sieti odpočúva, môže získať prístup k vašim prihlasovacím povereniam a informáciám obsiahnutým v e-maile.

Jedným zo spôsobov, ako tento problém obísť, je šifrovanie vašej komunikácie pomocou protokolu TLS (Transport Layer Security). Ide o rovnaký protokol, aký používajú hlavní e-mailoví klienti, ako sú Gmail a Outlook, aby vaše e-maily nikdy nespadli do nesprávnych rúk.

Aby sme to dosiahli, musíme urobiť niekoľko menších zmien v programe, ktorý sme vytvorili skôr.

Prvým krokom je samozrejme import súboru ssl knižnica spolu s smtplib. The ssl Knižnica vám umožňuje vytvárať zabezpečené súvislosti SSL a komunikovať cez šifrovanú sieť pripojením na konkrétne porty na oboch koncoch.

Zabezpečený kontext SSL nie je nič iné ako zbierka šifier, verzií protokolov, dôveryhodných certifikátov, možností TLS a rozšírení TLS.

Potom môžeme určiť port TLS a pridať niekoľko ssl funkcie knižnice na vytvorenie zabezpečeného e-mailu.

Kód so všetkými vykonanými zmenami vyzerá asi takto:

import smtplib, ssl
smtpServer = "smtp.gmail.com"
port = 587
myEmail = "[email protected]"
heslo = "moje_heslo"
#email a heslo môžu byť tiež vstupné polia používateľov
context = ssl.create_default_context ()
newEmail = Od: Od osoby
Komu: Osobe
Predmet: E-mailový test
Toto je telo e-mailu.

skúste:
server = smtplib. SMTP (smtpServer, port)
server.starttls (kontext = kontext)
server.login (newEmail, heslo)
okrem Výnimky ako e:
tlač („e-mail sa nepodarilo odoslať.“)
nakoniec:
server.quit ()

Rovnako ako predtým by ste mali vytvoriť a používať inštanciu SMTP v bloku okrem pokusu, aby ste predišli náhlym zlyhaniam programu.

Čo môžete robiť s týmto skriptom Python

Teraz, keď ste si osvojili úžasnú a prekvapivo užitočnú schopnosť automatizácie e-mailov pomocou kódu, môžete ho použiť na ľubovoľnú platformu, ktorá vyžaduje odosielanie e-mailov na rozmanitý zoznam adries.

Od použitia na vašom osobnom webe po zasielanie automatických potvrdzovacích e-mailov až po jeho použitie na odosielanie vianočných pohľadníc alebo pozvánky pre svoju rodinu a priateľov, využitie tohto malého skriptu v jazyku Python je obmedzené iba vaším vlastným tvorivosť.

Je to tiež len jedna z mnohých úžasných vecí, ktoré môžete v Pythone urobiť. Vďaka všadeprítomnej podpore vývojárov a ľahko naučiteľnej syntaxe nebolo osvojenie si zručnosti v jazyku Python nikdy jednoduchšie.

Ak chcete pokračovať v vytváraní skvelých vecí pomocou kódu, prečítajte si nášho sprievodcu, ako na to zostavte si svojho vlastného telegramového robota s Pythonom 3!

Email
Ako upgradovať svoje zručnosti v jazyku Python a AI pomocou programov Keras, Pytorch, Tensorflow a ďalších

Upgradujte si svoje programovacie schopnosti a schopnosti vývoja webových aplikácií v programoch Python, Artificial Intelligence, Keras, PyTorch a ďalších

Súvisiace témy
  • Programovanie
  • Gmail
  • E-mailové tipy
  • Python
  • Automatizácia úloh
O autorovi
Yash Chellani (Publikovaných 8 článkov)

Yash je ctižiadostivý študent informatiky, ktorý miluje vytváranie vecí a písanie o všetkom technickom. Vo voľnom čase rád hrá Squash, číta kópie najnovších Murakami a loví drakov v Skyrime.

Viac od Yash Chellaniho

Prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu s technickými tipmi, recenziami, bezplatnými elektronickými knihami a exkluzívnymi ponukami!

Ešte jeden krok…!

V e-maile, ktorý sme vám práve poslali, potvrďte svoju e-mailovú adresu.

.