Jak odesílat automatické e -mailové zprávy v Pythonu

Jak odesílat automatické e -mailové zprávy v Pythonu

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ších

Upgradujte 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ů
O autorovi Yash Chellani(10 článků zveřejněno)

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 Chellani

Př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