Vaikka kaupalliset sähköpostiohjelmat tarjoavat helppokäyttöisen käyttöliittymän kätevyyden, niiltä puuttuu usein joustavuus ja mukautettavuus, jota monet kehittäjät tai sisällöntuottajat haluavat sähköpostinsa lähettämiseen tarpeisiin.

Olipa kyseessä kiitosviestin lähettäminen uudelle tilaajalle sosiaalisen median kanavallasi tai sähköpostitoimintojen lisääminen Viimeisin projekti, kyky lähettää automaattisia viestejä SMTP: llä Pythonissa on jotain, joka varmasti tulee sisään kätevä.

Lue, kuinka voit saada Python-komentosarjan lähettämään koneellasi käynnissä olevia sähköposteja tänään.

Mikä on SMTP?

Yksinkertaisesti sanottuna SMTP tai yksinkertainen postinsiirtoprotokolla on viestintäprotokolla postipalvelimille sähköpostin lähettämiseksi Internetissä.

Se on olennainen osa TCP / IP-paketin sovelluskerrosta, joka on joukko protokollia, joita käytetään tiedonsiirtoon Internetissä tai muissa vastaavissa verkoissa. Verkossa, jossa SMTP on toteutettu, prosessi tunnetaan nimellä tallentaa ja siirtää eteenpäin auttaa siirtämään postia verkkojen yli.

Kussakin päätepisteessä Mail Transfer Agent (MTA) -niminen ohjelmisto käyttää tallennusta ja edelleenlähetystä helpottamaan osallistuvien SMTP-palvelimien välistä viestintää. SMTP: n päärooli on siis yksinkertaisesti sanella missä ja miten posti siirtyy verkon pisteestä toiseen.

Päästä alkuun

Sinulla on oltava sähköpostitili, jota voit käyttää sähköpostin lähettämiseen tämän ohjelman avulla. Tämä johtuu siitä, että käytämme sähköpostiohjelman SMTP-palvelua sähköpostien lähettämiseen. Tässä opetusohjelmassa käytämme Gmailia.

Voit lähettää testiviestejä myös paikallisella SMTP-virheenkorjauspalvelimella, mutta toistaiseksi käytämme sähköpostitiliä, koska se on intuitiivisempaa.

On mahdollista käyttää vain olemassa olevaa Gmail-tiliä, mutta kun pelaat ohjelmasi kanssa, se saattaa pian täyttyä testisähköposteilla. Siksi suosittelemme, että luot "heitettävän" tilin testausta varten.

Kytke nyt vaihtoehto kohtaan sallia vähemmän turvalliset sovellukset päästäksesi Gmail-tiliisi. Tämä on toinen syy käyttää heitettävää sähköpostia, koska ei ole suositeltavaa leikkiä ensisijaisen sähköpostisi yksityisyysasetusten kanssa.

Sähköpostin kirjoittaminen Pythonissa

Python 3: een on esiasennettu moduuli nimeltä smtplib (lyhenne smtp-kirjastosta), jota voidaan käyttää SMTP-palvelinten kanssa.

Kuten mikä tahansa muu Python-moduuli, ensimmäinen asia, joka sinun on tehtävä, on tuoda smtplib.

tuoda smtplib

SMTP-objektin alustaminen

Nyt voit luoda SMTP-objektin smtplibin avulla, joka tarjoaa sinulle suurimman osan perinteisen sähköpostiohjelman toiminnoista. SMTP-objektin toimintoja voidaan kuitenkin käyttää vain instanssimenetelmillä. Joten seuraava askel on luonnollisesti julistaa objektin esiintymä.

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

Tämä määrittää SMTP-objektin lähettämään sähköposteja Googlen SMTP-palvelimen avulla.

Tämän jälkeen määritämme lähettäjän ja vastaanottajan sähköpostit. Tässä on kätevä aiemmin tekemäsi Gmail-tili.

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

Yksi asia on huomata, että vastaanottajaluettelo on itse asiassa taulukko, mikä tarkoittaa, että se on suunniteltu tallentamaan ei-atomisia arvoja. Tämän seurauksena voit jopa määrittää kokonaisen postituslistan tähän kenttään!

Viestin kirjoittaminen

Epäilemättä yksinkertaisin osa prosessia, tässä on syötettävä arvot, jotka normaalisti lisätään uutta sähköpostia kirjoitettaessa. Tämä sisältää:

  • Lähettäjän tiedot
  • Vastaanottajan tiedot
  • Aihe
  • Viestin runko

Nämä kentät on koottu kolmoisissa lainausmerkeissä ja ne on rajattu seuraavasti:

newEmail = Lähettäjä: Henkilöltä 
Vastaanottaja: Henkilölle
Aihe: Sähköpostitesti
Tämä on sähköpostin runko.

Sähköpostin lähettäminen

Lopuksi voimme käyttää sendmail-komentoa lähettämään sähköpostia SMTP-palvelimeltasi vastaanottajan palvelimelle.

mySMTP.sendmail (emailSender, emailRecipients, newEmail)

Nyt on vain yksi viimeinen vaihe: koodin järjestäminen uudelleen ennalta ehkäisevien ohjelmien kaatumisten estämiseksi.

Python-sähköpostiohjelman vianmääritys

Joskus SMTP-palvelimesi ei välttämättä muodosta yhteyttä vastaanottajan yhteyteen tai sähköpostin lähettämisessä yhdestä SMTP-portista toiseen saattaa olla ongelma. Tällaisessa tapauksessa ohjelma saattaa kaatua odottamatta.

Voit ottaa huomioon tällaiset mahdollisuudet käyttämällä a yritä lukuun ottamatta estä ja laita virhealtiset lausekkeet yrittää lohko. Koko ohjelmasi ja try-paitsi-lohkon pitäisi näyttää tältä:

tuoda smtplib
emailSender = “[email protected]
myThroaway = ‘[email protected]
emailRecipients = [myThroaway]
newEmail = Lähettäjä: Henkilöltä
Vastaanottaja: Henkilölle
Aihe: Sähköpostitesti
Tämä on sähköpostin runko.

yrittää:
smtpObj = smtplib. SMTP (’smtp.gmail.com’)
mySMTP.sendmail (emailSender, emailRecipients, newEmail)
tulosta ("Sähköpostin lähetys onnistui!")
paitsi SMTPException:
tulosta ("Virhe: Sähköpostin lähettämisessä tapahtui virhe.")

Sähköpostisi suojaaminen

Jos aiot käyttää Pythonia todellisessa ympäristössä sähköpostien lähettämiseen, on tärkeää varmistaa, että viestintä on turvallista molemmissa päissä.

Yksinkertaisen SMTP-palvelimen käyttäminen oletusportin kanssa ei tarjoa salaustasoa viestinnälle. Tämä tarkoittaa, että jos joku kolmas osapuoli kuuntelee verkkoasi, se voi käyttää kirjautumistietojasi ja sähköpostiisi sisältyviä tietoja.

Yksi tapa kiertää tämä ongelma on käyttää TLS (Transport Layer Security) -protokollaa salaamaan viestintäsi. Tämä on sama protokolla, jota suuret sähköpostiohjelmat, kuten Gmail ja Outlook, käyttävät varmistaakseen, että sähköpostisi eivät koskaan pääse vääriin käsiin.

Tätä varten meidän on tehtävä muutamia pieniä muutoksia aiemmin luomaamme ohjelmaan.

Ensimmäinen askel on tietysti tuoda ssl kirjasto yhdessä smtplib. ssl kirjasto antaa sinulle mahdollisuuden luoda suojattu SSL-konteksti ja kommunikoida salatun verkon kautta muodostamalla yhteys tiettyihin portteihin molemmissa päissä.

Suojattu SSL-konteksti on vain salausten, protokollaversioiden, luotettujen varmenteiden, TLS-asetusten ja TLS-laajennusten kokoelma.

Tämän jälkeen voimme määrittää TLS-portin ja lisätä muutamaan ssl kirjastotoiminnot turvallisen sähköpostiosoitteen luomiseksi.

Koodi, kaikki tehdyt muutokset, näyttää tältä:

tuo smtplib, ssl
smtpServer = "smtp.gmail.com"
portti = 587
myEmail = "oma_sähkö[email protected]"
password = "oma salasana"
# sähköposti ja salasana voivat olla myös käyttäjän syöttökenttiä
context = ssl.create_default_context ()
newEmail = Lähettäjä: Henkilöltä
Vastaanottaja: Henkilölle
Aihe: Sähköpostitesti
Tämä on sähköpostin runko.

yrittää:
palvelin = smtplib. SMTP (smtpServer, portti)
server.starttls (konteksti = konteksti)
server.login (newEmail, salasana)
paitsi poikkeus e:
tulosta ("sähköpostia ei voitu lähettää.")
lopuksi:
server.quit ()

Kuten aiemmin, sinun on luotava ja käytettävä SMTP-ilmentymä kokeilulohkossa estämään äkilliset ohjelman kaatumiset.

Mitä voit tehdä tällä Python-komentosarjalla

Nyt kun olet hankkinut mahtavan ja yllättävän hyödyllisen taiton automatisoida sähköposteja koodin avulla, voit käyttää sitä kaikilla alustoilla, jotka edellyttävät sähköpostien lähettämistä monipuoliseen postituslistalle.

Käyttämällä sitä henkilökohtaisella verkkosivustollasi automaattisten kuittaussähköpostiviestien lähettämiseen joulukorttien lähettämiseen tai kutsuja perheellesi ja ystävillesi, tämän pienen Python-komentosarjan käyttöä rajoittavat vain sinun omasi luovuus.

Lisäksi tämä on vain yksi monista mahtavista asioista, joita voit tehdä Pythonilla. Laajan kehittäjätuen ja helposti opittavan syntaksin ansiosta Python-taitojen noutaminen ei ole koskaan ollut näin helppoa.

Jatka hienojen asioiden rakentamista koodilla tutustumalla oppaasemme rakenna oma Telegram-botti Python 3: lla!

Sähköposti
Kuinka päivittää Python- ja tekoälytaitosi Keras-, Pytorch-, Tensorflow- ja muilla tavoilla

Päivitä ohjelmointi- ja verkkokehitystaitosi Pythonissa, tekoälyssä, Kerasissa, PyTorchissa ja muissa

Liittyvät aiheet
  • Ohjelmointi
  • Gmail
  • Sähköpostivinkit
  • Python
  • Tehtävien automaatio
Kirjailijasta
Yash Chellani (8 artikkelia julkaistu)

Yash on pyrkivä tietojenkäsittelytieteen opiskelija, joka rakastaa rakentaa asioita ja kirjoittaa kaikesta tekniikasta. Vapaa-aikanaan hän haluaa pelata Squashia, lukea kopiota viimeisimmästä Murakamista ja metsästää lohikäärmeitä Skyrimissä.

Lisää artistilta Yash Chellani

Tilaa uutiskirjeemme

Liity uutiskirjeeseemme, jossa on teknisiä vinkkejä, arvosteluja, ilmaisia ​​e-kirjoja ja erikoistarjouksia!

Vielä yksi askel !!!

Vahvista sähköpostiosoitteesi juuri lähettämässäsi sähköpostiviestissä.

.