Automatikus e -mail üzenetek küldése Pythonban

Automatikus e -mail üzenetek küldése Pythonban

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





Legyen az köszönő e -mail küldése egy új feliratkozónak a közösségi média csatornáján, vagy e -mail funkció hozzáadása a legújabb projekthez, az automatikus üzenetek küldésének lehetősége az SMTP használatával a Pythonban mindenképpen hasznos lesz.





Olvasson tovább, hogy megtudja, hogyan lehet rávenni egy Python -szkriptet arra, hogy ma a gépén futó e -maileket küldjön.





Mi az SMTP?

Egyszerűen fogalmazva, az SMTP vagy az egyszerű levéltovábbítási protokoll kommunikációs protokoll a levelezőszerverek számára az e -mailek interneten keresztüli továbbítására.

Ez a TCP/IP csomag alkalmazásrétegének szerves része, amely az interneten vagy más hasonló hálózatokon keresztül történő kommunikációhoz használt protokollkészlet. Egy olyan hálózatban, ahol az SMTP megvalósul, az úgynevezett folyamat tárolás-és-továbbítás segít a levelek hálózaton keresztüli áthelyezésében.



Minden végpontnál a Mail Transfer Agent (MTA) néven ismert szoftver tárolja és továbbítja a részt vevő SMTP -kiszolgálók közötti kommunikációt. Az SMTP fő szerepe tehát egyszerűen az, hogy diktálja, hol és hogyan mozog a levél a hálózat egyik pontjából a másikba.

Elkezdeni

Rendelkeznie kell egy e -mail fiókkal, amellyel e programmal e -maileket küldhet. Ennek oka az, hogy az e -mail kliens SMTP szolgáltatását fogjuk használni e -mailek küldéséhez. Ebben az oktatóanyagban a Gmailt fogjuk használni.





A helyi SMTP hibakeresési szervert is használhatja teszt e -mailek küldésére, de jelenleg e -mail fiókot használunk az e -mailek küldésére, mivel ez intuitívabb.

Lehetőség van egyszerűen egy meglévő Gmail -fiók használatára is, de ahogy játszik a programjával, hamarosan megtelik teszt e -mailekkel. Ezért javasoljuk, hogy tesztelés céljából hozzon létre egy „kidobható” fiókot.





Most kapcsolja be a lehetőséget kevésbé biztonságos alkalmazások engedélyezése hogy hozzáférjen Gmail -fiókjához. Ez egy másik ok a kidobható e -mail használatára, mivel nem ajánlott játszani az elsődleges e -mail adatvédelmi beállításaival.

Az e -mail írása Pythonban

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

Mint minden más Python modul, az első dolog, amit meg kell tennie, az az smtplib importálása.

import smtplib

SMTP objektum inicializálása

Most az smtplib használatával létrehozhat egy SMTP objektumot, amely a hagyományos e -mail kliens legtöbb funkcióját biztosítja. Az SMTP objektum funkciói azonban csak példányos módszerekkel használhatók. Tehát a következő lépés természetesen egy objektumpéldány deklarálása.

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

Ez beállítja az SMTP objektumot, hogy e -maileket küldjön a Google SMTP szervere segítségével.

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

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

Itt egy dolgot kell megjegyezni, hogy a címzettlista valójában egy 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 általában hozzáad egy új e -mail összeállításakor. Ebbe beletartozik:

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

Ezek a mezők hármas idézőjelek közé kerülnek, és a következőképpen vannak elhatárolva:

Windows 7 vs Windows 10
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

E -mail küldése

Végül a sendmail paranccsal elküldhetjük a leveleket az SMTP szerverrő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őre látható program összeomlások megelőzése érdekében.

A Python e -mail program hibaelhárítása

Előfordulhat, hogy az SMTP -kiszolgáló nem tud kapcsolatot létesíteni a címzettével, vagy probléma merül fel az e -mailek egyik SMTP -portról a másikra történő küldésével. Ilyen esetben a program váratlanul összeomolhat.

Az ilyen lehetőségek figyelembevételéhez használhatja a próbáld-kivéve blokkolja és helyezze a hibára hajlamos utasításokat a próbáld ki Blokk. A teljes programnak a próba kivételével blokkkal együtt valahogy így kell kinéznie:

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.')

Az e -mailek biztosítása

Ha a Python-ot valós környezetben kívánja használni e-mailek küldéséhez, akkor fontos, hogy a kommunikáció mindkét végén biztonságos legyen.

Egy egyszerű SMTP -kiszolgáló használata az alapértelmezett porttal nem biztosít titkosítási réteget a kommunikációhoz. Ez azt jelenti, hogy ha bármely harmadik fél hallgat a hálózatán, akkor hozzáférhet a bejelentkezési adatokhoz és az e-mailben található információkhoz.

A probléma kikerülésének 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 fő 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árral együtt smtplib . Az ssl A könyvtár lehetővé teszi, hogy biztonságos SSL -környezetet hozzon létre, és titkosított hálózaton keresztül kommunikáljon, ha mindkét végén meghatározott portokhoz csatlakozik.

A biztonságos SSL -kontextus nem más, mint rejtjelek, protokollverziók, megbízható tanúsítványok, TLS -beállítások és TLS -bővítmények gyűjteménye.

Ezt követően megadhatjuk a TLS portot, és hozzáadhatunk néhányat ssl könyvtári funkciók segítségével biztonságos levelezőt hozhat létre.

A kód a végrehajtott módosításokkal valahogy így néz ki:

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()

Ahogyan korábban is, az SMTP-példányt a próba kivételével blokkban kell létrehozni és használni, hogy elkerülje a program hirtelen összeomlását.

hogyan készítsünk sorozatot a snapchat -en

Mit tehet ezzel a Python -szkripttel?

Most, hogy felvette a fantasztikus és meglepően hasznos készséget az e -mailek kód használatával történő automatizálására, alkalmazhatja azt bármely platformon, amelyhez e -maileket kell küldeni egy változatos levelezőlistára.

Attól kezdve, hogy személyes webhelyén automatikus visszaigazoló e -maileket küld, és karácsonyi képeslapokat vagy meghívókat küld családjának és barátainak, e kis Python -szkript használatát csak a saját kreativitása korlátozza.

Ezenkívül ez csak egy a sok fantasztikus dolog közül, amelyeket a Python segítségével megtehet. A mindenütt megtalálható fejlesztői támogatással és könnyen elsajátítható szintaxissal a Python készség megszerzése soha nem volt ilyen egyszerű.

Ha továbbra is hűvös dolgokat szeretne létrehozni kóddal, tekintse meg útmutatónkat készítsd el saját Telegram botodat a Python 3 segítségével !

Részvény Részvény Csipog Email Hogyan fejlessze Python- és AI -készségeit a Keras, Pytorch, Tensorflow és egyebekkel

Fejlessze programozási és webfejlesztési készségeit a Python, a Mesterséges Intelligencia, a Keras, a PyTorch és más területeken

Olvassa tovább
Kapcsolódó témák
  • Programozás
  • Gmail
  • Tippek e -mailben
  • Piton
  • Feladat automatizálása
A szerzőről Yash Chellani(10 cikk megjelent)

Yash egy törekvő informatikus hallgató, aki szeret építeni és írni minden technikai dologról. Szabadidejében szeret Squasht játszani, olvasni a legújabb Murakami egy példányát, és sárkányokat vadászni a Skyrimben.

Továbbiak Yash Chellani -tól

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, értékeléseket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide