Zatímco komerční e-mailoví klienti nabízejí pohodlí uživatelsky přívětivého grafického uživatelského rozhraní, často jim chybí flexibilitu a přizpůsobitelnost, kterou si mnoho vývojářů nebo tvůrců obsahu přeje pro svůj e-mail potřeby.

Ať už jde o zaslání e-mailu s poděkováním novému předplatiteli na vašem kanálu sociálních médií nebo přidání e-mailové funkce váš nejnovější projekt, schopnost odesílat automatizované zprávy pomocí SMTP v Pythonu je něco, co vás určitě přijde Šikovný.

Čtěte dále a zjistěte, jak můžete dnes získat skript v Pythonu pro odesílání e-mailů běžících na vašem počítači.

Co je SMTP?

Zjednodušeně řečeno, SMTP nebo Simple Mail Transfer Protocol je komunikační protokol pro poštovní servery pro přenos e-mailů přes internet.

Je nedílnou součástí aplikační vrstvy sady TCP / IP, což je sada protokolů používaných pro komunikaci přes internet nebo jiné podobné sítě. V síti, kde je implementován SMTP, je proces známý jako ukládat a přeposílat pomáhá přesouvat poštu napříč sítěmi.

instagram viewer

V každém koncovém bodě používá software známý jako Mail Transfer Agent (MTA) úložiště a předávání pro usnadnění komunikace mezi zúčastněnými servery SMTP. Hlavní rolí SMTP je tedy jednoduše diktovat, kde a jak se pošta v síti pohybuje z jednoho bodu do druhého.

Začínáme

K odesílání e-mailů pomocí tohoto programu musíte mít e-mailový účet. Je to proto, že k odesílání e-mailů budeme používat službu SMTP e-mailového klienta. V tomto výukovém programu budeme používat Gmail.

K odesílání zkušebních e-mailů můžete také použít místní server pro ladění SMTP, ale nyní budeme k odesílání e-mailů používat e-mailový účet, protože je intuitivnější.

Je možné jednoduše použít existující účet Gmail, ale když si budete hrát se svým programem, brzy se může zaplnit testovacími e-maily. Proto doporučujeme za účelem testování vytvořit účet „vyhodit“.

Nyní zapněte možnost na povolit méně bezpečné aplikace pro přístup k vašemu účtu Gmail. To je další důvod, proč používat jednorázový e-mail, protože se nedoporučuje hrát si s nastavením soukromí vašeho primárního e-mailu.

Psaní e-mailu v Pythonu

Python 3 je předinstalován s modulem s názvem smtplib (zkratka pro knihovnu smtp), který lze použít pro práci se servery SMTP.

Jako každý jiný modul v Pythonu je první věcí, kterou musíte udělat, je import smtplib.

importovat smtplib

Inicializace objektu SMTP

Nyní můžete pomocí smtplib vytvořit objekt SMTP, který vám poskytne většinu funkcí běžného e-mailového klienta. Funkce objektu SMTP však lze použít pouze pomocí instančních metod. Samozřejmě dalším krokem je deklarace instance objektu.

mySMTP = smtplib. SMTP („smtp.google.com“) 

Tím se nakonfiguruje objekt SMTP tak, aby odesílal e-maily pomocí serveru SMTP společnosti Google.

Poté určíme e-maily odesílatele a příjemce. Zde se hodí účet Gmail, který jste si dříve vytvořili.

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

Zde je třeba poznamenat, že seznam příjemců je ve skutečnosti pole, což znamená, že je navržen pro ukládání nenatomových hodnot. Výsledkem je, že v tomto poli můžete dokonce zadat celý seznam adresátů!

Psaní zprávy

Pravděpodobně nejpřímější část procesu, zde musíte zadat hodnoty, které byste normálně přidali při vytváření nového e-mailu. To zahrnuje:

  • Podrobnosti odesílatele
  • Údaje o příjemci
  • Předmět
  • Tělo zprávy

Tato pole jsou sestavena do uvozovek a jsou ohraničena následujícím způsobem:

newEmail = Od: Od osoby 
Komu: Osobě
Předmět: E-mailový test
Toto je tělo e-mailu.

Odeslání e-mailu

Nakonec můžeme použít příkaz sendmail k odeslání pošty ze serveru SMTP na server příjemce.

mySMTP.sendmail (emailSender, emailRecipients, newEmail)

Nyní zbývá jen jeden poslední krok: reorganizace kódu, aby se zabránilo jakémukoli předvídatelnému zhroucení programu.

Odstraňování problémů s e-mailovým programem Pythonu

Někdy může váš server SMTP selhat při navázání spojení s příjemcem nebo může dojít k problému s odesláním e-mailu z jednoho portu SMTP na druhý. V takovém případě může váš program neočekávaně selhat.

K zohlednění těchto možností můžete použít a zkuste - kromě blok a vložte příkazy náchylné k chybám uvnitř Snaž se blok. Celý váš program, spolu s blokem try-except, by měl vypadat asi takto:

importovat smtplib
emailSender = “[email protected]
myThroaway = ‚[email protected] '
emailRecipients = [myThroaway]
newEmail = Od: Od osoby
Komu: Osobě
Předmět: E-mailový test
Toto je tělo e-mailu.

Snaž se:
smtpObj = smtplib. SMTP („smtp.gmail.com“)
mySMTP.sendmail (emailSender, emailRecipients, newEmail)
tisk („E-mail úspěšně odeslán!“)
kromě SMTPException:
print („Chyba: Při odesílání vašeho e-mailu došlo k chybě.“)

Zabezpečení vašich e-mailů

Pokud máte v úmyslu používat Python v reálném prostředí k odesílání e-mailů, je důležité zajistit, aby byla komunikace na obou koncích zabezpečená.

Použití jednoduchého serveru SMTP s výchozím portem neposkytuje komunikaci žádnou šifrovací vrstvu. To znamená, že pokud ve vaší síti naslouchá jakákoli třetí strana, může přistupovat k vašim přihlašovacím údajům a informacím obsaženým ve vašem e-mailu.

Jedním ze způsobů, jak tento problém obejít, je šifrování komunikace pomocí protokolu TLS (Transport Layer Security). Jedná se o stejný protokol používaný hlavními e-mailovými klienty, jako jsou Gmail a Outlook, aby bylo zajištěno, že se vaše e-maily nikdy nedostanou do špatných rukou.

K tomu je potřeba provést několik menších změn v programu, který jsme vytvořili dříve.

Prvním krokem je samozřejmě import souboru ssl knihovna spolu s smtplib. The ssl Knihovna vám dává možnost vytvářet zabezpečený kontext SSL a komunikovat přes šifrovanou síť připojením ke konkrétním portům na obou koncích.

Zabezpečený kontext SSL není nic jiného než sbírka šifer, verzí protokolů, důvěryhodných certifikátů, možností TLS a rozšíření TLS.

Poté můžeme určit port TLS a přidat několik ssl funkce knihovny k vytvoření zabezpečeného e-mailu.

Kód se všemi provedenými změnami vypadá asi takto:

import smtplib, ssl
smtpServer = "smtp.gmail.com"
port = 587
myEmail = "[email protected]"
heslo = "moje_heslo"
#email a heslo mohou být také uživatelská vstupní pole
context = ssl.create_default_context ()
newEmail = Od: Od osoby
Komu: Osobě
Předmět: E-mailový test
Toto je tělo e-mailu.

Snaž se:
server = smtplib. SMTP (smtpServer, port)
server.starttls (kontext = kontext)
server.login (newEmail, heslo)
kromě Výjimky jako e:
tisk („e-mail nelze odeslat.“)
Konečně:
server.quit ()

Stejně jako dříve byste měli vytvořit a použít instanci SMTP v bloku try-except, aby nedošlo k náhlému zhroucení programu.

Co můžete dělat s tímto skriptem Pythonu

Nyní, když jste vyzvedli úžasnou a překvapivě užitečnou dovednost automatizace e-mailů pomocí kódu, můžete ji použít na jakoukoli platformu, která vyžaduje odesílání e-mailů na různorodý seznam adresátů.

Od jeho použití na vašem osobním webu po zasílání automatických potvrzovacích e-mailů až po jeho používání k zasílání e-mailů na vánoční pohlednice nebo pozvánky pro vaši rodinu a přátele, použití tohoto malého skriptu Pythonu je omezeno pouze vaším vlastním tvořivost.

Je to také jen jedna z mnoha úžasných věcí, které můžete v Pythonu dělat. Díky všudypřítomné podpoře vývojářů a snadno naučitelné syntaxi nebylo nikdy snadné vyzvednout dovednosti v Pythonu.

Chcete-li pokračovat v vytváření skvělých věcí pomocí kódu, podívejte se na našeho průvodce, jak na to vytvořte si svého vlastního telegramového robota s Pythonem 3!

E-mailem
Jak upgradovat své dovednosti v Pythonu a AI pomocí programů Keras, Pytorch, Tensorflow a dalších

Upgradujte své dovednosti v oblasti programování a vývoje webových aplikací na platformách Python, Artificial Intelligence, Keras, PyTorch a dalších

Související témata
  • Programování
  • Gmail
  • E-mailové tipy
  • Krajta
  • Automatizace úloh
O autorovi
Yash Chellani (Publikováno 8 článků)

Yash je ctižádostivý student výpočetní techniky, který rád staví věci a píše o všech věcech tech. Ve svém volném čase rád hraje Squash, čte kopii nejnovějších Murakami a loví draky ve Skyrimu.

Více od Yash Chellani

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji s technickými tipy, recenzemi, bezplatnými elektronickými knihami a exkluzivními nabídkami!

Ještě jeden krok…!

V e-mailu, který jsme vám právě poslali, potvrďte svou e-mailovou adresu.

.