Slik sender du automatiserte e -postmeldinger i Python

Slik sender du automatiserte e -postmeldinger i Python

Selv om kommersielle e-postklienter tilbyr brukervennlig GUI, mangler de ofte fleksibiliteten og tilpassbarheten som mange utviklere eller innholdsskapere ønsker for sine e-postbehov.





Det være seg for å sende en takkepost til en ny abonnent på din sosiale mediekanal eller legge til e -postfunksjonalitet i ditt siste prosjekt, muligheten til å sende automatiserte meldinger ved hjelp av SMTP i Python er noe som kommer til å komme godt med.





Les videre for å finne ut hvordan du kan få et Python -skript for å sende e -post som kjører på maskinen din i dag.





Hva er SMTP?

For å si det enkelt, SMTP eller Simple Mail Transfer Protocol, er en kommunikasjonsprotokoll for e -postservere å overføre e -post over internett.

Det er en integrert del av applikasjonslaget i TCP/IP -pakken, som er et sett med protokoller som brukes til kommunikasjon over internett eller andre lignende nettverk. I et nettverk der SMTP er implementert, en prosess kjent som lagre og videresende hjelper til med å flytte e -post på tvers av nettverk.



På hvert endepunkt bruker programvare kjent som Mail Transfer Agent (MTA) store og forward for å lette kommunikasjonen mellom de deltakende SMTP -serverne. Hovedrollen til SMTP er derfor ganske enkelt å diktere hvor og hvordan post beveger seg fra et punkt til et annet i et nettverk.

Starter

Du må ha en e -postkonto for å kunne sende e -post med dette programmet. Dette er fordi vi skal bruke e -postklientens SMTP -tjeneste til å sende e -post. For denne opplæringen bruker vi Gmail.





Du kan også bruke en lokal SMTP -feilsøkingsserver til å sende testmeldinger, men foreløpig bruker vi en e -postkonto til å sende e -post siden det er mer intuitivt.

Det er mulig å bare bruke en eksisterende Gmail -konto, men når du leker med programmet ditt, kan det snart bli fylt opp med test -e -postmeldinger. Dette er grunnen til at vi anbefaler å opprette en 'throwaway' -konto for å teste.





Slå på alternativet til tillate mindre sikre apper for å få tilgang til Gmail -kontoen din. Dette er en annen grunn til å bruke en e -post som kastes, ettersom det ikke anbefales å leke med personverninnstillingene til din primære e -post.

Skriver e -posten i Python

Python 3 leveres forhåndsinstallert med en modul kalt smtplib (forkortelse for smtp-bibliotek), som kan brukes til å arbeide med SMTP-servere.

Som alle andre Python -moduler er det første du må gjøre å importere smtplib.

import smtplib

Initialiserer et SMTP -objekt

Nå kan du bruke smtplib til å lage et SMTP -objekt, som vil gi deg det meste av funksjonaliteten til en vanlig e -postklient. Imidlertid kan funksjonene til et SMTP -objekt bare brukes via forekomstmetoder. Så naturligvis er det neste trinnet å deklarere en objektforekomst.

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

Dette konfigurerer SMTP -objektet til å sende ut e -post med Googles SMTP -server.

Etter dette spesifiserer vi avsender og mottaker e -post. Her er det nyttig Gmail -kontoen du opprettet tidligere.

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

En ting å merke seg her er at mottakerlisten faktisk er en matrise, noe som betyr at den er designet for å lagre ikke-atomiske verdier. Som et resultat kan du til og med angi en hel adresseliste i dette feltet!

Skriver meldingen

Uten tvil den mest enkle delen av prosessen, her må du legge inn verdier som du vanligvis vil legge til når du skriver en ny e -post. Dette inkluderer:

  • Avsenderens detaljer
  • Mottakerens detaljer
  • Emne
  • Meldingtekst

Disse feltene er satt sammen inne i trippel anførselstegn og er avgrenset som følger:

flytt iphone backup til ekstern stasjon
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

Sender e -posten

Til slutt kan vi bruke sendmail -kommandoen til å sende e -posten fra SMTP -serveren til mottakerens server.

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

Nå er det bare et siste trinn: Omorganisering av koden for å forhindre forutsigbare programkrasjer.

Feilsøking av ditt Python -e -postprogram

Noen ganger kan det hende SMTP -serveren din ikke oppretter en forbindelse med mottakerens, eller det kan være et problem med å sende en e -post fra en SMTP -port til en annen. I en slik hendelse kan programmet krasje uventet.

For å redegjøre for slike muligheter, kan du bruke en prøve-unntatt blokker og legg de feilutsatte utsagnene inne i prøve blokkere. Hele programmet ditt, sammen med prøve-unntatt-blokken, skal se slik ut:

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

Sikre e -postene dine

Hvis du har tenkt å bruke Python i virkelige omgivelser for å sende e-post, er det viktig å sørge for at kommunikasjonen er sikker i begge ender.

Å bruke en enkel SMTP -server med standardporten gir ikke noe krypteringslag til kommunikasjonen. Dette betyr at hvis en tredjepart hører på nettverket ditt, kan den få tilgang til påloggingsinformasjonen din og informasjonen i e-posten din.

En måte å omgå dette problemet på er å bruke TLS -protokollen (Transport Layer Security) for å kryptere kommunikasjonen. Dette er den samme protokollen som brukes av store e -postklienter som Gmail og Outlook for å sikre at e -postene dine aldri kommer i feil hender.

For å gjøre det må vi gjøre noen mindre endringer i programmet vi opprettet tidligere.

Det første trinnet er selvfølgelig å importere ssl bibliotek sammen med smtplib . De ssl bibliotek gir deg muligheten til å lage en sikker SSL -kontekst og kommunisere over et kryptert nettverk ved å koble til bestemte porter i begge ender.

En sikker SSL -kontekst er ikke annet enn en samling av chiffer, protokollversjoner, pålitelige sertifikater, TLS -alternativer og TLS -utvidelser.

Etter dette kan vi spesifisere TLS -porten og legge til noen få ssl bibliotekfunksjoner for å lage en sikker e -postadresse.

Koden, med alle endringene som er gjort, ser omtrent slik ut:

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

Som før bør du opprette og bruke SMTP-forekomsten i en prøve-unntatt-blokk for å forhindre plutselige programkrasj.

kan du kjøre mac os på en pc

Hva du kan gjøre med dette Python -skriptet

Nå som du har fått tak i den fantastiske og overraskende nyttige ferdigheten til å automatisere e -post med kode, kan du bruke den på en hvilken som helst plattform som krever at du sender e -post til en mangfoldig adresseliste.

Fra å bruke det på ditt personlige nettsted for å sende automatiske e -postbekreftelser til å bruke det til å sende julekort eller invitasjoner til familie og venner, er bruken av dette lille Python -skriptet begrenset av din egen kreativitet.

Dette er også bare en av de mange fantastiske tingene du kan gjøre med Python. Med sin allestedsnærværende utviklerstøtte og lettlærte syntaks, har det aldri vært enklere å hente en Python-ferdighet.

For å fortsette å bygge kule ting med kode, sjekk vår guide for hvordan bygge din egen Telegram -bot med Python 3 !

Dele Dele kvitring E -post Hvordan oppgradere dine Python- og AI -ferdigheter med Keras, Pytorch, Tensorflow og mer

Oppgrader programmering og webutvikling på Python, Artificial Intelligence, Keras, PyTorch og mer

Les neste
Relaterte temaer
  • Programmering
  • Gmail
  • Tips til e -post
  • Python
  • Oppgaveautomatisering
Om forfatteren Yash Chellani(10 artikler publisert)

Yash er en håpefull informatikkstudent som liker å bygge ting og skrive om alt teknisk. På fritiden liker han å spille Squash, lese en kopi av den siste Murakami og jakte på drager i Skyrim.

Mer fra Yash Chellani

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere