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.
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!
Upgradujte své dovednosti v oblasti programování a vývoje webových aplikací na platformách Python, Artificial Intelligence, Keras, PyTorch a dalších
- Programování
- Gmail
- E-mailové tipy
- Krajta
- Automatizace úloh
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.
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.