Přestože komerční e-mailoví klienti nabízejí pohodlí uživatelsky přívětivého grafického uživatelského rozhraní, často jim chybí flexibilita a přizpůsobitelnost, které by si mnozí vývojáři nebo tvůrci obsahu přáli pro své potřeby zasílání e-mailů.
Ať už jde o odeslání děkovného e -mailu novému předplatiteli na váš kanál sociálních médií nebo přidání funkce e -mailu do vašeho nejnovějšího projektu, schopnost odesílat automatické zprávy pomocí SMTP v Pythonu je něco, co se určitě bude hodit.
Pokračujte v čtení, abyste zjistili, jak můžete dnes získat skript Pythonu pro odesílání e -mailů spuštěných na vašem počítači.
Co je SMTP?
Jednoduše ř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 uložit a přeposlat pomáhá přesouvat poštu přes sítě.
V každém koncovém bodě software známý jako Mail Transfer Agent (MTA) používá úložiště a přeposílání k usnadnění komunikace mezi zúčastněnými servery SMTP. Hlavní rolí SMTP je tedy jednoduše diktovat, kde a jak se pošta přesouvá v síti z jednoho bodu do druhého.
Začínáme
K odesílání e -mailů pomocí tohoto programu potřebujete e -mailový účet. Důvodem je, že k odesílání e -mailů budeme používat službu SMTP e -mailového klienta. Pro tento tutoriál budeme používat Gmail.
K odesílání testovacích e -mailů můžete také použít místní ladicí server SMTP, ale prozatím budeme k odesílání e -mailů používat e -mailový účet, protože je intuitivnější.
Je možné jednoduše použít stávající účet Gmail, ale jak si budete hrát se svým programem, může se brzy zaplnit testovacími e -maily. Z tohoto důvodu doporučujeme za účelem testování vytvořit účet „zahodit“.
Nyní zapněte možnost povolit méně bezpečné aplikace pro přístup k vašemu účtu Gmail. To je další důvod pro použití vyhozeného e -mailu, protože se nedoporučuje pohrávat si s nastavením ochrany soukromí vašeho primárního e -mailu.
Psaní e -mailu v Pythonu
Python 3 je dodáván s předinstalovaným modulem s názvem smtplib (zkratka pro knihovnu smtp), který lze použít pro práci se servery SMTP.
Jako každý jiný modul Pythonu, první věc, kterou musíte udělat, je importovat smtplib.
import smtplib
Inicializace objektu SMTP
Nyní můžete použít smtplib k vytvoření objektu 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 prostřednictvím metod instance. Dalším krokem je tedy přirozeně deklarace instance objektu.
mySMTP = smtplib.SMTP('smtp.google.com')
Toto konfiguruje objekt SMTP pro odesílání e -mailů pomocí serveru SMTP společnosti Google.
Poté určíme e -maily odesílatele a příjemce. Zde se vám bude hodit dříve vytvořený účet Gmail.
emailSender = senderMail@sender.com
myThroaway = 'myEmail@gmail.com'
emailRecipients = [myThroaway]
Jedna věc, kterou je třeba poznamenat, je, že seznam příjemců je ve skutečnosti pole, což znamená, že je navržen tak, aby ukládal neatomické hodnoty. V důsledku toho můžete v tomto poli dokonce zadat celý seznam adresátů!
Psaní zprávy
Pravděpodobně nejjednodušší část procesu, zde musíte zadat hodnoty, které byste normálně přidali při psaní nového e -mailu. To zahrnuje:
- Podrobnosti odesílatele
- Podrobnosti o příjemci
- Předmět
- Tělo zprávy
Tato pole jsou sestavena uvnitř uvozovek a jsou ohraničena následovně:
jak zrychlit pevný disk
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''
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í je jen jeden poslední krok: reorganizace kódu, aby se předešlo jakýmkoli předvídatelným haváriím programu.
Odstraňování problémů s vaším e -mailovým programem Python
Někdy se může stát, že se vašemu serveru SMTP nepodaří navázat 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 vysvětlení těchto možností můžete použít a zkus-kromě zablokovat a vložit příkazy náchylné k chybám do souboru Snaž se blok. Celý váš program, spolu s blokem try-except, by měl vypadat nějak takto:
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.')
Zabezpečení vašich e -mailů
Pokud hodláte používat Python v reálném světě 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 získat přístup 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 použít k šifrování komunikace protokol TLS (Transport Layer Security). Jedná se o stejný protokol, který používají hlavní e -mailoví klienti, jako jsou Gmail a Outlook, aby zajistili, že se vaše e -maily nikdy nedostanou do špatných rukou.
K tomu musíme provést několik drobný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.
V návaznosti na to můžeme určit port TLS a přidat několik ssl funkce knihovny pro vytvoření zabezpečeného e -mailu.
Kód se všemi provedenými změnami vypadá nějak takto:
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()
Stejně jako dříve byste měli vytvořit a používat instanci SMTP v bloku try-kromě, aby se zabránilo jakémukoli náhlému zhroucení programu.
jak vložit heslo na flash disk
Co můžete dělat s tímto skriptem Pythonu
Nyní, když jste si osvojili úž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ů do různorodého seznamu adresátů.
Používání tohoto malého skriptu Pythonu je omezeno pouze vaší vlastní kreativitou, od použití na vašem osobním webu po zasílání automatizovaných potvrzovacích e -mailů až po jeho zasílání vánočních přání nebo pozvánek vaší rodině a přátelům.
Také je to jen jedna z mnoha úžasných věcí, které můžete s Pythonem dělat. Díky všudypřítomné podpoře vývojářů a snadno naučitelné syntaxi nebylo osvojení dovednosti v jazyce Python nikdy jednodušší.
Chcete -li pokračovat ve vytváření skvělých věcí pomocí kódu, podívejte se na náš průvodce, jak na to vytvořte si svého vlastního telegramového robota s Pythonem 3 !
Podíl Podíl tweet E-mailem Jak upgradovat své dovednosti v Pythonu a AI pomocí Keras, Pytorch, Tensorflow a dalšíchUpgradujte své znalosti programování a webového vývoje v Pythonu, umělé inteligenci, Kerasu, PyTorchu a dalších
Číst dále Související témata- Programování
- Gmail
- E -mailové tipy
- Krajta
- Automatizace úkolů
Yash je aspirující student informatiky, který rád staví věci a píše o technologiích všeho. Ve svém volném čase rád hraje Squash, čte kopii nejnovějšího Murakami a loví draky ve Skyrimu.
Více od Yash ChellaniPřihlaste se k odběru našeho zpravodaje
Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné elektronické knihy a exkluzivní nabídky!
Kliknutím sem se přihlásíte k odběru