Automaattisten sähköpostiviestien lähettäminen Pythonissa

Automaattisten sähköpostiviestien lähettäminen Pythonissa

Vaikka kaupalliset sähköpostiohjelmat tarjoavat kätevän käyttöliittymän, heiltä puuttuu usein joustavuus ja muokattavuus, jota monet kehittäjät tai sisällöntuottajat haluavat sähköpostitarpeisiinsa.





Olipa kyse kiitosviestin lähettämisestä uudelle tilaajalle sosiaalisen median kanavallasi tai sähköpostitoiminnon lisäämiseen uusimpaan projektiin, mahdollisuus lähettää automaattisia viestejä SMTP: n avulla Pythonissa on varmasti hyödyllistä.





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





Mikä on SMTP?

Yksinkertaisesti sanottuna SMTP tai Simple Mail Transfer Protocol on viestintäprotokolla postipalvelimille sähköpostin lähettämiseksi Internetin kautta.

Se on olennainen osa TCP/IP -paketin sovelluskerrosta, joka on joukko protokollia, joita käytetään Internetin tai muiden vastaavien verkkojen väliseen viestintään. Verkossa, jossa SMTP on toteutettu, prosessi tunnetaan nimellä tallentaa ja lähettää eteenpäin auttaa siirtämään postia verkon kautta.



Kussakin päätepisteessä Mail Transfer Agent (MTA) -ohjelmisto käyttää tallennusta ja edelleenlähetystä helpottaakseen osallistuvien SMTP -palvelimien välistä viestintää. Siksi SMTP: n päätehtävä on yksinkertaisesti sanella, missä ja miten posti liikkuu 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 myös käyttää paikallista SMTP -virheenkorjauspalvelinta testiviestien lähettämiseen, mutta toistaiseksi käytämme sähköpostitiliä sähköpostien lähettämiseen, koska se on intuitiivisempaa.

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





Ota nyt käyttöön vaihtoehto salli vähemmän turvalliset sovellukset päästäksesi Gmail -tiliisi. Tämä on toinen syy käyttää sähköpostiviestiä, koska ensisijaisen sähköpostisi yksityisyysasetusten kanssa ei suositella pelaamista.

Sähköpostin kirjoittaminen Pythonissa

Python 3: ssa on esiasennettu smtplib-moduuli (lyhenne sanasta smtp library), jota voidaan käyttää SMTP-palvelimien kanssa.

Kuten kaikki muutkin Python -moduulit, ensimmäinen asia, joka sinun on tehtävä, on tuoda smtplib.

import smtplib

SMTP -objektin alustaminen

Nyt voit käyttää smtplibiä luodaksesi SMTP -objektin, joka tarjoaa sinulle suurimman osan perinteisen sähköpostiohjelman toiminnoista. SMTP -objektin toimintoja voidaan kuitenkin käyttää vain esiintymämenetelmien kautta. Joten seuraava askel on luonnollisesti objekti -ilmentymän ilmoittaminen.

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

Tämä määrittää SMTP -objektin lähettämään sähköpostit Googlen SMTP -palvelimella.

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

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

Yksi huomioitava asia on, että vastaanottajaluettelo on itse asiassa taulukko, mikä tarkoittaa, että se on suunniteltu ei-atomisten arvojen tallentamiseen. Tämän seurauksena voit jopa määrittää koko postituslistan tähän kenttään!

Viestin kirjoittaminen

Epäilemättä yksinkertaisin prosessin osa, tässä sinun on syötettävä arvot, jotka tavallisesti lisäät uuden sähköpostin kirjoittamisen yhteydessä. Tämä sisältää:

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

Nämä kentät on koottu kolminkertaisiin lainausmerkkeihin ja rajattu seuraavasti:

mitä hiljaisen paikan projektille tapahtui
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

Sähköpostin lähettäminen

Lopuksi voimme käyttää sendmail -komentoa lähettääksesi sähköpostisi SMTP -palvelimeltasi vastaanottajan palvelimelle.

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

Nyt on vain yksi viimeinen vaihe: koodin järjestäminen uudelleen ennakoitavien ohjelman kaatumisten estämiseksi.

Python -sähköpostiohjelman vianmääritys

Joskus SMTP -palvelimesi ei ehkä pysty muodostamaan yhteyttä vastaanottajan omaan tai sähköpostin lähettämisessä yhdestä SMTP -portista toiseen voi olla ongelmia. Tällaisessa tapauksessa ohjelma saattaa kaatua odottamatta.

Voit ottaa huomioon tällaiset mahdollisuudet käyttämällä a kokeile-paitsi estää ja laittaa virheille alttiita lausuntoja yrittää lohko. Koko ohjelmasi yhdessä yrittämistä lukuun ottamatta pitäisi näyttää tältä:

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

Sähköpostien suojaaminen

Jos aiot käyttää Pythonia reaalimaailmassa sähköpostien lähettämiseen, on tärkeää varmistaa, että viestintä on suojattu molemmista päistä.

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

Yksi tapa kiertää tämä ongelma on käyttää TLS (Transport Layer Security) -protokollaa viestinnän salaamiseen. Tämä on sama protokolla, jota käyttävät suuret sähköpostiohjelmat, kuten Gmail ja Outlook, jotta sähköpostisi eivät koskaan joudu 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 . The ssl kirjasto antaa sinulle mahdollisuuden luoda suojatun SSL -kontekstin ja kommunikoida salatun verkon kautta yhdistämällä tiettyihin portteihin molemmissa päissä.

Suojattu SSL -konteksti on vain kokoelma salauksia, protokollaversioita, luotettavia varmenteita, TLS -vaihtoehtoja ja TLS -laajennuksia.

Tämän jälkeen voimme määrittää TLS -portin ja lisätä muutamia ssl kirjastotoiminnot suojatun sähköpostin lähettämiseksi.

Koodi ja kaikki tehdyt muutokset näyttävät tältä:

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

Kuten aikaisemmin, sinun on luotava ja käytettävä SMTP-ilmentymää kokeilevaan lohkoon estääksesi äkilliset ohjelman kaatumiset.

mikä on rajoitettu sarja netflixissä

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

Nyt kun olet hankkinut mahtavan ja yllättävän hyödyllisen taidon automatisoida sähköpostit koodilla, voit soveltaa sitä mihin tahansa alustaan, joka edellyttää sähköpostien lähettämistä eri postituslistalle.

Tämän pienen Python -komentosarjan käyttöä rajoittaa vain oma luovuutesi sen käyttämisestä henkilökohtaisella verkkosivustollasi automaattisten kuittaussähköpostien lähettämisellä sen lähettämiseen joulukortteihin tai kutsuihin perheellesi ja ystävillesi.

Lisäksi tämä on vain yksi monista mahtavista asioista, joita voit tehdä Pythonilla. Python-taitojen hankkiminen ei ole koskaan ollut helpompaa sen kaikkialla esiintyvän kehittäjätuen ja helposti opittavan syntaksin ansiosta.

Jos haluat jatkaa viileiden asioiden rakentamista koodilla, tutustu oppaaseemme rakenna oma Telegram -robotti Python 3: lla !

Jaa Jaa Tweet Sähköposti Kuinka päivittää Python- ja AI -taitosi Keras-, Pytorch-, Tensorflow- ja monilla muilla

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

Lue seuraava
Liittyvät aiheet
  • Ohjelmointi
  • Gmail
  • Vinkkejä sähköpostitse
  • Python
  • Tehtävien automaatio
Kirjailijasta Yash Chellani(10 artikkelia julkaistu)

Yash on pyrkivä tietotekniikan opiskelija, joka rakastaa rakentaa asioita ja kirjoittaa kaikesta tekniikasta. Vapaa -ajallaan hän tykkää pelata squashia, lukea uusimman Murakamin kopion ja metsästää lohikäärmeitä Skyrimissä.

Lisää Yash Chellanilta

tilaa uutiskirjeemme

Liity uutiskirjeeseemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e -kirjoja ja ainutlaatuisia tarjouksia!

Klikkaa tästä tilataksesi