Sådan sender du automatiserede e -mail -beskeder i Python

Sådan sender du automatiserede e -mail -beskeder i Python

Mens kommercielle e-mail-klienter tilbyder bekvemmeligheden ved en brugervenlig GUI, mangler de ofte den fleksibilitet og tilpasning, som mange udviklere eller indholdsskabere ønsker for deres e-mailbehov.





Det være sig for at sende en takke -e -mail til en ny abonnent på din sociale mediekanal eller tilføje e -mail -funktionalitet til dit seneste projekt, muligheden for at sende automatiske meddelelser ved hjælp af SMTP i Python er noget, der helt sikkert kommer til nytte.





Læs videre for at finde ud af, hvordan du kan få et Python -script til at sende e -mails, der kører på din maskine i dag.





Hvad er SMTP?

For at sige det enkelt er SMTP eller Simple Mail Transfer Protocol en kommunikationsprotokol for mailservere til at overføre e -mail over internettet.

Det er en integreret del af applikationslaget i TCP/IP -pakken, som er et sæt protokoller, der bruges til kommunikation over internettet eller andre lignende netværk. I et netværk, hvor SMTP er implementeret, kaldes en proces gemme og videresende hjælper med at flytte mail på tværs af netværk.



På hvert slutpunkt bruger software kendt som Mail Transfer Agent (MTA) store og forward til at lette kommunikationen mellem de deltagende SMTP -servere. SMTPs hovedrolle er derfor simpelthen at diktere, hvor og hvordan mail bevæger sig fra et punkt til et andet i et netværk.

Kom godt i gang

Du skal have en e -mail -konto for at kunne bruge e -mails ved hjælp af dette program. Dette er fordi vi vil bruge e -mailklientens SMTP -service til at sende e -mails. Til denne vejledning bruger vi Gmail.





Du kan også bruge en lokal SMTP -fejlretningsserver til at sende test -e -mails, men i øjeblikket bruger vi en e -mail -konto til at sende e -mails, da det er mere intuitivt.

Det er muligt blot at bruge en eksisterende Gmail -konto, men når du leger med dit program, kan det snart blive fyldt op med test -e -mails. Det er derfor, vi anbefaler, at du opretter en 'smid' -konto med henblik på test.





Aktiver nu muligheden for tillade mindre sikre apps for at få adgang til din Gmail -konto. Dette er en anden grund til at bruge en smid -e -mail, da det ikke anbefales at lege med privatlivsindstillingerne for din primære e -mail.

Skrivning af e -mailen i Python

Python 3 leveres forudinstalleret med et modul kaldet smtplib (forkortelse for smtp-bibliotek), som kan bruges til at arbejde med SMTP-servere.

Ligesom alle andre Python -moduler er den første ting du skal gøre, at importere smtplib.

import smtplib

Initialiserer et SMTP -objekt

Nu kan du bruge smtplib til at oprette et SMTP -objekt, som giver dig det meste af funktionaliteten i en konventionel e -mail -klient. Imidlertid kan et SMTP -objekts funktioner kun bruges via instansmetoder. Så naturligvis er det næste trin at erklære en objektinstans.

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

Dette konfigurerer SMTP -objektet til at sende e -mails ud ved hjælp af Googles SMTP -server.

Herefter angiver vi afsender- og modtager -e -mails. Her er den Gmail -konto, du har oprettet tidligere, praktisk.

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

En ting at bemærke her er, at modtagerlisten faktisk er en matrix, hvilket betyder, at den er designet til at lagre ikke-atomiske værdier. Som et resultat kan du endda angive en hel mailingliste i dette felt!

Skrivning af meddelelsen

Uden tvivl den mest enkle del af processen, her skal du indtaste værdier, som du normalt ville tilføje, når du skriver en ny e -mail. Dette omfatter:

  • Afsenderens detaljer
  • Modtagerens detaljer
  • Emne
  • Beskedtekst

Disse felter er sat sammen inden for tredobbelte anførselstegn og er afgrænset som følger:

hvordan man slutter bluetooth -hovedtelefoner til xbox
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

Sender mailen

Endelig kan vi bruge kommandoen sendmail til at sende mailen fra din SMTP -server til modtagerens server.

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

Nu er der kun et sidste trin: Omorganisering af koden for at forhindre forudsigelige programnedbrud.

Fejlfinding af dit Python -e -mailprogram

Nogle gange kan din SMTP -server muligvis ikke oprette forbindelse til modtagerens, eller der kan være et problem med at sende en e -mail fra en SMTP -port til en anden. I en sådan hændelse kan dit program gå uventet ned.

For at redegøre for sådanne muligheder kan du bruge en prøv-undtagen blok og læg de fejludsatte udsagn inde i prøve blok. Hele dit program, sammen med blokken prøve-undtagen, skal se sådan ud:

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

Sikring af dine e -mails

Hvis du har til hensigt at bruge Python i den virkelige verden til at sende e-mails, er det vigtigt at sikre, at kommunikationen er sikker i begge ender.

Brug af en simpel SMTP -server med standardporten giver ikke noget krypteringslag til kommunikationen. Det betyder, at hvis en tredjepart lytter ind på dit netværk, kan den få adgang til dine loginoplysninger og oplysningerne i din e-mail.

En måde at omgå dette problem på er at bruge TLS -protokollen (Transport Layer Security) til at kryptere din kommunikation. Dette er den samme protokol, der bruges af større e -mail -klienter som Gmail og Outlook for at sikre, at dine e -mails aldrig falder i de forkerte hænder.

For at gøre det skal vi foretage et par mindre ændringer af det program, vi har oprettet tidligere.

Det første trin er naturligvis at importere ssl bibliotek sammen med smtplib . Det ssl bibliotek giver dig mulighed for at oprette en sikker SSL -kontekst og kommunikere over et krypteret netværk ved at oprette forbindelse til bestemte porte i begge ender.

En sikker SSL -kontekst er intet andet end en samling af chiffer, protokolversioner, pålidelige certifikater, TLS -muligheder og TLS -udvidelser.

Efter dette kan vi angive TLS -porten og tilføje et par stykker ssl biblioteksfunktioner til at oprette en sikker emailer.

Koden, med alle de foretagne ændringer, ser sådan ud:

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 oprette og bruge SMTP-forekomsten i en blok, der ikke kan prøves, for at forhindre pludselige programnedbrud.

hvordan man forlader gruppechat på iphone

Hvad du kan gøre med dette Python -script

Nu hvor du har hentet den fantastiske og overraskende nyttige færdighed i at automatisere e -mails ved hjælp af kode, kan du anvende den på enhver platform, der kræver afsendelse af e -mails til en mangfoldig postliste.

Fra at bruge det på dit personlige websted til at sende automatiske bekræftelses -e -mails til at bruge det til at e -maile julekort eller invitationer til din familie og venner, er brugen af ​​dette lille Python -script kun begrænset af din egen kreativitet.

Dette er også bare en af ​​de mange fantastiske ting, du kan gøre med Python. Med sin allestedsnærværende udviklerstøtte og let at lære syntaks har det aldrig været lettere at hente en Python-færdighed.

For at fortsætte med at bygge fede ting med kode, kan du se vores guide til, hvordan du gør det opbyg din helt egen Telegram -bot med Python 3 !

Del Del Tweet E -mail Sådan opgraderes dine Python- og AI -færdigheder med Keras, Pytorch, Tensorflow og mere

Opgrader dine programmerings- og webudviklingsevner på Python, kunstig intelligens, Keras, PyTorch og mere

Læs Næste
Relaterede emner
  • Programmering
  • Gmail
  • Tips til e -mail
  • Python
  • Opgaveautomation
Om forfatteren Yash Chellani(10 artikler udgivet)

Yash er en håbefuld datalogistuderende, der elsker at bygge ting og skrive om alt teknisk. I fritiden kan han lide at spille Squash, læse en kopi af den nyeste Murakami og jage drager i Skyrim.

Mere fra Yash Chellani

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere