Ako odosielať automatické e -mailové správy v Pythone

Ako odosielať automatické e -mailové správy v Pythone

Aj keď komerční e-mailoví klienti ponúkajú pohodlie užívateľsky prívetivého grafického rozhrania, často im chýba flexibilita a prispôsobiteľnosť, ktorú by si mnohí vývojári alebo tvorcovia obsahu želali pre svoje e-mailové potreby.





Či už ide o odosielanie e -mailov s poďakovaním novému predplatiteľovi na váš kanál sociálnych médií alebo pridanie funkcie e -mailu do vášho najnovšieho projektu, schopnosť odosielať automatické správy pomocou protokolu SMTP v Pythone je niečo, čo sa vám určite bude hodiť.





Pokračujte v čítaní a zistite, ako môžete dnes získať skript Python na odosielanie e -mailov na vašom počítači.





Čo je to SMTP?

Zjednodušene povedané, SMTP alebo Simple Mail Transfer Protocol je komunikačný protokol pre poštové servery na prenos e -mailov cez internet.

Je neoddeliteľnou súčasťou aplikačnej vrstvy balíka TCP/IP, čo je sada protokolov používaných na komunikáciu cez internet alebo iné podobné siete. V sieti, kde je implementovaný SMTP, je proces známy ako uložiť a poslať ďalej pomáha presúvať poštu cez siete.



V každom koncovom bode softvér známy ako Mail Transfer Agent (MTA) používa ukladanie a presmerovanie na uľahčenie komunikácie medzi zúčastnenými servermi SMTP. Hlavnou úlohou SMTP je preto jednoducho diktovať, kde a ako sa pošta v sieti presúva z jedného bodu do druhého.

Začíname

Na odosielanie e -mailov pomocou tohto programu musíte mať e -mailový účet. Dôvodom je, že na odosielanie e -mailov budeme používať službu SMTP e -mailového klienta. V tomto návode budeme používať Gmail.





Na odosielanie testovacích e -mailov môžete použiť aj miestny ladiaci server SMTP, ale zatiaľ budeme na odosielanie e -mailov používať e -mailový účet, pretože je intuitívnejší.

Je možné jednoducho použiť existujúci účet Gmail, ale keď sa hráte so svojim programom, čoskoro sa môže zaplniť testovacími e -mailami. Z tohto dôvodu odporúčame na účely testovania vytvoriť účet „na zahodenie“.





Teraz zapnite možnosť povoliť menej bezpečné aplikácie prístup k svojmu účtu Gmail. To je ďalší dôvod, prečo používať vyhodený e -mail, pretože sa neodporúča hrať si s nastaveniami ochrany osobných údajov vášho primárneho e -mailu.

Písanie e -mailu v Pythone

Python 3 je predinštalovaný s modulom smtplib (skratka pre knižnicu smtp), ktorý je možné použiť na prácu so servermi SMTP.

Ako každý iný modul Pythonu, prvá vec, ktorú musíte urobiť, je importovať smtplib.

import smtplib

Inicializácia objektu SMTP

Teraz môžete použiť smtplib na vytvorenie objektu SMTP, ktorý vám poskytne väčšinu funkcií konvenčného e -mailového klienta. Funkcie objektu SMTP je však možné použiť iba prostredníctvom inštančných metód. Ďalším krokom je, prirodzene, deklarovanie inštancie objektu.

mySMTP = smtplib.SMTP('smtp.google.com')

Toto nakonfiguruje objekt SMTP na odosielanie e -mailov pomocou servera SMTP spoločnosti Google.

Potom určíme e -maily odosielateľa a príjemcu. Tu vám príde vhod účet Gmail, ktorý ste si vytvorili predtým.

emailSender = senderMail@sender.com
myThroaway = 'myEmail@gmail.com'
emailRecipients = [myThroaway]

Tu je potrebné poznamenať, že zoznam príjemcov je v skutočnosti pole, čo znamená, že je navrhnutý tak, aby ukladal neatómové hodnoty. V dôsledku toho môžete v tomto poli dokonca zadať celý zoznam adries!

Písanie správy

Pravdepodobne najľahšia časť procesu, tu musíte zadať hodnoty, ktoré by ste normálne pridali pri vytváraní nového e -mailu. Toto zahŕňa:

  • Podrobnosti o odosielateľovi
  • Podrobnosti o príjemcovi
  • Predmet
  • Telo správy

Tieto polia sú usporiadané do trojitých úvodzoviek a sú označené nasledovne:

ako zistím, či je môj telefón odpočúvaný
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

Odoslanie emailu

Nakoniec môžeme použiť príkaz sendmail na odoslanie pošty zo servera SMTP na server príjemcu.

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

Teraz je tu len posledný krok: reorganizácia kódu, aby sa zabránilo akýmkoľvek predvídateľným zlyhaniam programu.

Riešenie problémov s vašim e -mailovým programom Python

Váš server SMTP niekedy nemusí nadviazať spojenie s príjemcom alebo môže nastať problém s odoslaním e -mailu z jedného portu SMTP na druhý. V takom prípade môže váš program neočakávane zlyhať.

Na vysvetlenie týchto možností môžete použiť a skús-okrem zablokovať a vložiť príkazy náchylné na chyby do súboru skúsiť blok. Celý váš program, spolu s blokom try-except, by mal vyzerať asi 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čenie vašich e -mailov

Ak máte v úmysle používať Python v skutočnom prostredí na odosielanie e-mailov, je dôležité zaistiť bezpečnú komunikáciu na oboch koncoch.

Použitie jednoduchého servera SMTP s predvoleným portom neposkytuje komunikácii žiadnu šifrovaciu vrstvu. To znamená, že ak tretia strana počúva vo vašej sieti, môže získať prístup k vašim prihlasovacím povereniam a informáciám obsiahnutým vo vašom e-maile.

Jednou z možností, ako obísť tento problém, je použiť na šifrovanie komunikácie protokol TLS (Transport Layer Security). Je to ten istý protokol, ktorý používajú hlavné e -mailové klienty, ako sú Gmail a Outlook, aby sa zaistilo, že sa vaše e -maily nikdy nedostanú do nesprávnych rúk.

Aby sme to urobili, musíme v programe, ktorý sme vytvorili predtým, vykonať niekoľko drobných zmien.

Prvým krokom je samozrejme import súboru ssl knižnica spolu s smtplib . The ssl knižnica vám dáva možnosť vytvárať bezpečný kontext SSL a komunikovať prostredníctvom šifrovanej siete pripojením ku konkrétnym portom na oboch koncoch.

Zabezpečený kontext SSL nie je nič iné ako zbierka šifier, verzií protokolov, dôveryhodných certifikátov, možností TLS a rozšírení TLS.

Potom môžeme špecifikovať port TLS a pridať ho ssl funkcie knižnice na vytvorenie bezpečného e -mailu.

Kód so všetkými vykonanými zmenami vyzerá 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()

Rovnako ako predtým by ste mali vytvoriť a používať inštanciu SMTP v bloku try-kromě, aby ste predišli akýmkoľvek náhlym zlyhaniam programu.

yahoo mail najlepšie webové e -maily

Čo môžete robiť s týmto skriptom Python

Teraz, keď ste získali úžasnú a prekvapivo užitočnú schopnosť automatizovať e -maily pomocou kódu, môžete ho použiť na ľubovoľnej platforme, ktorá vyžaduje odosielanie e -mailov do rôznych zoznamov adries.

Použitie tohto malého skriptu v jazyku Python je obmedzené na vašu vlastnú kreativitu, od použitia na vašom osobnom webe až po odosielanie automatických potvrdzujúcich e -mailov až po odosielanie vianočných pohľadníc alebo pozvánok vašej rodine a priateľom.

Toto je tiež jedna z mnohých úžasných vecí, ktoré môžete v Pythone robiť. Vďaka všadeprítomnej podpore pre vývojárov a ľahko osvojiteľnej syntaxi nebolo získanie znalosti jazyka Python nikdy jednoduchšie.

Ak chcete pokračovať v budovaní skvelých vecí pomocou kódu, pozrite sa na nášho sprievodcu vytvorte si vlastného telegramového robota v Pythone 3 !

zdieľam zdieľam Tweet E -mail Ako aktualizujte svoje znalosti Pythonu a AI pomocou Keras, Pytorch, Tensorflow a ďalších

Vylepšite svoje znalosti programovania a webového vývoja v jazykoch Python, Artificial Intelligence, Keras, PyTorch a ďalších

Čítajte ďalej
Súvisiace témy
  • Programovanie
  • Gmail
  • E -mailové tipy
  • Python
  • Automatizácia úloh
O autorovi Yash Chellani(10 publikovaných článkov)

Yash je ctižiadostivý študent informatiky, ktorý rád stavia veci a píše o všetkom technickom. Vo svojom voľnom čase rád hrá Squash, číta kópiu najnovšieho Murakami a loví drakov v Skyrime.

Viac od Yash Chellani

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber