Míg a kereskedelmi e-mail kliensek egy felhasználóbarát grafikus felhasználói felület kényelmét kínálják, gyakran hiányzik belőlük rugalmasság és testreszabhatóság, amelyre sok fejlesztő vagy tartalomkészítő vágyik e-mailjeikre igények.

Legyen szó arról, hogy köszönő e-mailt küldött egy új előfizetőnek a közösségi média csatornáján, vagy e-mail funkciót adott hozzá a legújabb projekted, az a lehetőség, hogy automatizált üzeneteket küldjünk az SMTP használatával a Pythonban, ami mindenképpen be fog jönni ügyes.

Olvassa el, hogy megtudja, miként kaphat Python szkriptet a gépén futó e-mailek küldéséhez.

Mi az SMTP?

Leegyszerűsítve: az SMTP vagy az egyszerű levélátviteli protokoll egy kommunikációs protokoll, amelyet a levelezőszerverek az e-mailek interneten keresztül továbbíthatnak.

A TCP / IP csomag alkalmazásrétegének szerves része, amely az interneten vagy más hasonló hálózatokon keresztüli kommunikációhoz használt protokollkészlet. Egy olyan hálózatban, ahol az SMTP megvalósításra kerül, az úgynevezett folyamat

instagram viewer
tárolás-és-továbbítás segít a levelek áthelyezésében a hálózatok között.

Az MTA (Mail Transfer Agent) néven ismert szoftver minden végponton tárolást és továbbítást használ a kommunikáció megkönnyítésére a részt vevő SMTP-kiszolgálók között. Az SMTP fő szerepe tehát egyszerűen az, hogy meghatározza, hol és hogyan mozog az e-mail a hálózat egyik pontjáról a másikra.

Elkezdeni

Rendelkeznie kell e-mail fiókkal ahhoz, hogy e-maileket küldhessen a program segítségével. Ennek oka, hogy az e-mail kliens SMTP szolgáltatását fogjuk használni e-mailek küldéséhez. Ehhez az oktatóanyaghoz a Gmailt fogjuk használni.

Helyi SMTP hibakereső kiszolgálót is használhat tesztüzenetek küldéséhez, de egyelőre e-mail fiókot fogunk használni e-mailek küldésére, mivel az intuitívabb.

Lehetséges egyszerűen használni egy meglévő Gmail-fiókot, de amint a programmal játszik, hamarosan tele lehet teszt e-mailekkel. Ezért javasoljuk, hogy hozzon létre egy „kidobható” fiókot a tesztelés céljából.

Most kapcsolja be a lehetőséget kevésbé biztonságos alkalmazások engedélyezése a Gmail-fiók eléréséhez. Ez egy másik ok arra, hogy egy eldobható e-mailt használjon, mivel nem ajánlott az elsődleges e-mail adatvédelmi beállításai között játszani.

Az e-mail írása Pythonban

A Python 3 előre telepítve van az smtplib nevű modullal (az smtp könyvtár rövidítése), amely használható SMTP szerverekkel való együttműködésre.

Mint minden más Python modul, az első dolgot az smtplib importálása kell elvégeznie.

import smtplib

SMTP-objektum inicializálása

Most az smtplib segítségével létrehozhat egy SMTP objektumot, amely a hagyományos e-mail kliens funkcióinak nagy részét biztosítja. Az SMTP-objektum funkciói azonban csak példány-módszerekkel használhatók. Tehát természetesen a következő lépés egy objektum példány deklarálása.

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

Ez úgy konfigurálja az SMTP objektumot, hogy e-maileket küldjön a Google SMTP szerverén keresztül.

Ezt követően megadjuk a feladó és a címzett e-mailjeit. Itt hasznos a korábban létrehozott Gmail-fiók.

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

Itt meg kell jegyezni, hogy a címzettek listája valójában tömb, ami azt jelenti, hogy nem atomi értékek tárolására készült. Ennek eredményeként akár egy teljes levelezőlistát is megadhat ebben a mezőben!

Az üzenet írása

A folyamat vitathatatlanul legegyszerűbb része, itt meg kell adnia azokat az értékeket, amelyeket normál esetben hozzáadna egy új e-mail írásakor. Ebbe beletartozik:

  • Feladó adatai
  • A címzett adatai
  • Tantárgy
  • Üzenet törzse

Ezeket a mezőket háromszoros idézőjelek alkotják, és az alábbiak szerint határolják el őket:

newEmail = Feladó: Személytől 
Címzett: Személynek
Tárgy: E-mail teszt
Ez az e-mail törzse.

Az e-mail küldése

Végül a sendmail paranccsal küldhetjük el az e-mailt az SMTP-kiszolgálóról a címzett szerverére.

mySMTP.sendmail (emailSender, emailRecipients, newEmail)

Most már csak egy utolsó lépés van: a kód újraszervezése az előrelátható program összeomlásának megelőzése érdekében.

A Python Email program hibaelhárítása

Előfordulhat, hogy az SMTP-kiszolgáló nem tud kapcsolatot létesíteni a címzetttel, vagy problémát jelenthet az egyik SMTP-portról a másiknak küldött e-mail. Ilyen esetben a program váratlanul összeomolhat.

Az ilyen lehetőségek figyelembe vételéhez használhatja a próbálja-kivéve blokkolja és tegye a hibára hajlamos utasításokat a próbáld ki Blokk. A teljes programnak, a try-kivétel blokknak együtt, a következőképpen kell kinéznie:

import smtplib
emailSender = “[email protected]
myThroaway = ‘[email protected]
emailRecipients = [myThroaway]
newEmail = Feladó: Személytől
Címzett: Személynek
Tárgy: E-mail teszt
Ez az e-mail törzse.

próbáld ki:
smtpObj = smtplib. SMTP (‘smtp.gmail.com’)
mySMTP.sendmail (emailSender, emailRecipients, newEmail)
nyomtatás („Az e-mail sikeresen elküldve!”)
kivéve SMTPException:
print ("Hiba: Hiba történt az e-mail küldésekor.")

Az e-mailek biztonsága

Ha a Pythont valós körülmények között kívánja használni e-mailek küldésére, fontos, hogy a kommunikáció mindkét végén biztonságos legyen.

Egyszerű SMTP szerver használata az alapértelmezett porttal nem biztosít titkosítási réteget a kommunikáció számára. Ez azt jelenti, hogy ha harmadik fél hallgat a hálózaton, hozzáférhet a bejelentkezési adatokhoz és az e-mailben található információkhoz.

A probléma kijátszásának egyik módja a TLS (Transport Layer Security) protokoll használata a kommunikáció titkosításához. Ugyanezt a protokollt használják a nagyobb e-mail kliensek, például a Gmail és az Outlook annak biztosítására, hogy e-mailjei soha ne kerüljenek rossz kezekbe.

Ehhez néhány kisebb változtatást kell végrehajtanunk a korábban létrehozott programon.

Az első lépés természetesen a ssl könyvtár együtt smtplib. A ssl A könyvtár lehetőséget nyújt biztonságos SSL-kontextus létrehozására és titkosított hálózaton keresztüli kommunikációra úgy, hogy mindkét végén csatlakozik bizonyos portokhoz.

A biztonságos SSL-kontextus nem más, mint titkosítások, protokoll-verziók, megbízható tanúsítványok, TLS-opciók és TLS-kiterjesztések gyűjteménye.

Ezt követően megadhatjuk a TLS portot, és néhányat hozzáadhatunk ssl könyvtár funkciók létrehozásával biztonságos emailer.

A kód, az összes elvégzett változtatással, így néz ki:

import smtplib, ssl
smtpServer = "smtp.gmail.com"
port = 587
myEmail = "[email protected]"
password = "jelszavam"
A #email és a jelszó felhasználói beviteli mezők is lehetnek
context = ssl.create_default_context ()
newEmail = Feladó: Személytől
Címzett: Személynek
Tárgy: E-mail teszt
Ez az e-mail törzse.

próbáld ki:
szerver = smtplib. SMTP (smtpServer, port)
server.starttls (kontextus = kontextus)
server.login (newEmail, jelszó)
kivéve az e kivételt:
nyomtatás ("az e-mailt nem sikerült elküldeni.")
végül:
server.quit ()

Az SMTP-példányt a korábbiakhoz hasonlóan egy try-kivétel blokkban kell létrehoznia és használni, hogy megakadályozza a program hirtelen összeomlását.

Mit tehet ezzel a Python szkriptel

Most, hogy megszerezte az e-mailek kód segítségével történő automatizálásának fantasztikus és meglepően hasznos készségét, alkalmazhatja azt minden olyan platformra, amely e-mailek küldését igényli egy sokféle levelezőlistára.

Attól kezdve, hogy személyes weboldalán automatizált nyugtázó e-maileket küldött, egészen karácsonyi kártyák küldéséig vagy meghívók a családjához és barátaihoz, ennek a kis Python szkriptnek a használatát csak a sajátja korlátozza kreativitás.

Ez is csak egy a sok fantasztikus dolog közül, amelyeket megtehet a Pythonnal. A mindenütt elérhető fejlesztői támogatással és a könnyen megtanulható szintaxissal a Python készség megszerzése még soha nem volt ilyen egyszerű.

Ha továbbra is jó dolgokat szeretnél kóddal felépíteni, nézd meg útmutatónkat, hogyan készítse el saját Telegram botját a Python 3-mal!

Email
Hogyan frissítheti Python és AI készségeit a Keras, a Pytorch, a Tensorflow és egyebek segítségével

Frissítse programozási és webfejlesztési készségeit a Python, a Mesterséges Intelligencia, a Keras, a PyTorch és egyéb szolgáltatásain

Kapcsolódó témák
  • Programozás
  • Gmail
  • E-mail tippek
  • Piton
  • Feladat automatizálás
A szerzőről
Yash Chellani (8 cikk megjelent)

Yash egy törekvő informatikus hallgató, aki imád dolgokat építeni és mindenről ír. Szabadidejében szeret Squashot játszani, elolvassa a legújabb Murakami példányát, és sárkányokra vadászik a Skyrimben.

Több Yash Chellanitól

Iratkozzon fel hírlevelünkre

Csatlakozzon hírlevelünkhöz, amely műszaki tippeket, véleményeket, ingyenes e-könyveket és exkluzív ajánlatokat tartalmaz!

Még egy lépés…!

Kérjük, erősítse meg e-mail címét az imént elküldött e-mailben.

.