7 days of WordPress plugins, themes & templates - for free!* Unlimited asset downloads! Start 7-Day Free Trial
Advertisement
  1. Code
  2. Python

Odosielanie e-mailov v Pythone cez SMTP

Read Time: 7 mins

Slovak (Slovenčina) translation by Ryan (you can also view the original English article)

V tomto návode si predstavíme SMTP, modul v Pythone, ktorý sa používa pre odosielanie e-mailov. Taktiež si ukážeme ako odosielať rôzne typy e-mailov ako sú jednoduché textové e-maily, e-maily s prílohami alebo e-maily s obsahom v jazyku HTML.

Úvod do SMTP

Simple Mail Transfer Protocol (SMTP) má na starosti odosielanie a smerovanie e-mailov medzi servermi.

Modul smtplib v Pythone definuje objekt relácie SMTP klienta, ktorý može byť použitý na odosielanie e-mailov akémukoľvek inému prístroju na Internete s SMTP alebo ESMTP serverom.

Takto si vytvoríme objekt SMTP klienta.

Vytvárame a odosielame jednoduchý e-mail

Nasledujúci skript vám umožní odosielať e-mail cez SMTP server Googlu. Bohužiaľ, Google vám nepovolí prihlásiť sa cez smtplib, pretože prihlásenie označí za “menej zabezpečené.” Prihláste sa a navštívte https://myaccount.google.com/lesssecureapps, potom zapnite možnosť “Povoliť menej zabezpečené aplikácie” ako na obrázku nižšie.

Create and Send a Simple EmailCreate and Send a Simple EmailCreate and Send a Simple Email

Kód nižšie vykonáva tieto kroky:

  • Vytvára objekt pre pripojenie na SMTP server.
  • Prihlasuje sa na váš účet.
  • Určuje hlavičky správy a prihlasovacie údaje.
  • Vytvára objekt správy MIMEMultipart a prikladá súvisiace hlavičky do nej, napr. Od, Komu a Predmet.
  • Prikladá správu do objektu správy MIMEMultipart.
  • A nakoniec, odosiela správu.

Tento proces je tak jednoduchý, ako je zobrazený v kóde nižšie.

Všimnite si, že adresy v hlavičkách ‘Od’ a ‘Komu’ musia byť zahrnuté v hlavičkách správy.

Vytváranie a odosielanie e-mailu s prílohou

V tomto príklade si ukážeme ako odoslať e-mail s prílohou obrázka. Tento kód je podobný kódu, ktorý bol použitý na odosielanie jednoduchého textového e-mailu.

  • Vytvára objekt pre pripojenie na SMTP server.
  • Prihlasuje sa na váš účet.
  • Určuje hlavičky správy a prihlasovacie údaje.
  • Vytvára objekt správy MIMEMultipart a prikladá súvisiace hlavičky do nej, napr. Od, Komu a Predmet.
  • Číta a prikladá obrázok do objektu správy MIMEMultipart.
  • A nakoniec, odosiela správu.

Trieda MIMEImage je podtrieda triedy MIMENonMultipart, ktorá sa používa na vytváranie objektov správy obrázkového typu. Iné dostupné triedy sú
MIMEMessage a MIMEAudio.

Vytváranie a odosielanie e-mailov s HTML obsahom

Najprv si vyvoríme HTML šablónu na e-mail.

Vytváranie HTML šablóny

Tu je HTML kód šablóny, ktorý obsahuje dva stĺpce tabuľky, kde každá z nich má obrázok a ukážku obsahu. Ak máde radšej predpripravené, profesionálne riešenie, vyberte si z našich najlepších e-mailových šablón. Môžete si vybrať z množstva riešení, ktoré viete jednoducho nastaviť.

Šablóna by mala vyzerať takto:

The HTML TemplateThe HTML TemplateThe HTML Template

Nižšie sa nachádza skript pre odosielanie e-mailu s HTML obsahom. Obsahom bude naša šablóna pre e-maily.

Spustite tento kód, a keď sa nevyskytne žiadna chyba, váš e-mail bol odoslaný. Choďte na doručenú poštu a uvidíte váš e-mail s HTML obsahom.

Formatted HTML emailFormatted HTML emailFormatted HTML email

Záver

Tento návod pokryl väčšinu toho, čo je potrebné pre odosielanie e-mailov z vašej aplikácie. Existujú rôzne API pre odosielanie e-mailov, napr. SendGrid, takže vy nemusíte začať od začiatku, ale je dôležité pochopiť základy. Pre viac informácii navštívte dokumentáciu Pythonu.

Taktiež sa nebojte pozrieť sa na to, čo je dostupné na predaj v obchode Envato Market. Keď máte nejaké otázky, opýtajte sa ich pomocou komentárov nižšie.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Scroll to top
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.