Hur man skickar automatiserade e -postmeddelanden i Python

Hur man skickar automatiserade e -postmeddelanden i Python

Medan kommersiella e-postklienter erbjuder bekvämligheten med ett användarvänligt GUI, saknar de ofta den flexibilitet och anpassningsbarhet som många utvecklare eller innehållsskapare önskar för sina e-postbehov.





Var det för att skicka ett tack -e -postmeddelande till en ny prenumerant på din sociala mediekanal eller lägga till e -postfunktionalitet till ditt senaste projekt, möjligheten att skicka automatiska meddelanden med SMTP i Python är något som säkert kommer att vara till nytta.





Läs vidare för att ta reda på hur du kan få ett Python -skript för att skicka e -postmeddelanden som körs på din dator idag.





Vad är SMTP?

För att uttrycka det enkelt är SMTP eller Simple Mail Transfer Protocol ett kommunikationsprotokoll för e -postservrar att överföra e -post över internet.

Det är en integrerad del av applikationsskiktet i TCP/IP -sviten, som är en uppsättning protokoll som används för kommunikation över internet eller andra liknande nätverk. I ett nätverk där SMTP implementeras, kallas en process lagra och vidarebefordra hjälper till att flytta e -post över nätverk.



Vid varje slutpunkt använder programvara som kallas Mail Transfer Agent (MTA) lagra och vidarebefordra för att underlätta kommunikation mellan de deltagande SMTP -servrarna. SMTP: s huvudroll är därför helt enkelt att diktera var och hur e -post flyttas från en punkt till en annan i ett nätverk.

Komma igång

Du måste ha ett e -postkonto för att kunna skicka e -post med det här programmet. Detta beror på att vi kommer att använda e -postklientens SMTP -tjänst för att skicka e -post. För den här självstudien använder vi Gmail.





Du kan också använda en lokal SMTP -felsökningsserver för att skicka testmeddelanden, men för närvarande använder vi ett e -postkonto för att skicka e -post eftersom det är mer intuitivt.

Det är möjligt att helt enkelt använda ett befintligt Gmail -konto, men när du leker med ditt program kan det snart bli fullt med testmeddelanden. Det är därför vi rekommenderar att du skapar ett 'throwaway' -konto för testning.





Aktivera nu alternativet till tillåta mindre säkra appar för att komma åt ditt Gmail -konto. Detta är en annan anledning att använda ett e -postmeddelande eftersom det inte rekommenderas att leka med sekretessinställningarna för din primära e -post.

Skriva e -postmeddelandet i Python

Python 3 kommer förinstallerad med en modul som heter smtplib (kort för smtp-bibliotek), som kan användas för att arbeta med SMTP-servrar.

Precis som alla andra Python -moduler är det första du måste göra att importera smtplib.

import smtplib

Initierar ett SMTP -objekt

Nu kan du använda smtplib för att skapa ett SMTP -objekt, som ger dig det mesta av funktionaliteten för en konventionell e -postklient. Ett SMTP -objekts funktioner kan dock endast användas via instansmetoder. Så naturligtvis är nästa steg att deklarera en objektinstans.

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

Detta konfigurerar SMTP -objektet för att skicka ut e -postmeddelanden med Googles SMTP -server.

Efter detta anger vi avsändarens och mottagarens e -postmeddelanden. Här är det Gmail -konto du skapade tidigare till nytta.

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

En sak att notera här är att mottagarlistan faktiskt är en array, vilket innebär att den är utformad för att lagra icke-atomära värden. Som ett resultat kan du till och med ange en hel e -postlista i det här fältet!

Skriva meddelandet

Förmodligen den mest enkla delen av processen, här måste du mata in värden som du normalt skulle lägga till när du skriver ett nytt e -postmeddelande. Detta inkluderar:

  • Avsändarens detaljer
  • Mottagarens detaljer
  • Ämne
  • Meddelandetext

Dessa fält sätts ihop inuti trippelkvoteringstecken och avgränsas enligt följande:

vilket är billigare uber eller lyft
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

Skickar mejlet

Slutligen kan vi använda kommandot sendmail för att skicka e -post från din SMTP -server till mottagarens server.

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

Nu finns det bara ett sista steg: omorganisera koden för att förhindra eventuella förutsebara programkrascher.

Felsökning av ditt Python -e -postprogram

Ibland kan din SMTP -server misslyckas med att upprätta en anslutning till mottagarens, eller det kan vara ett problem med att skicka ett e -postmeddelande från en SMTP -port till en annan. I en sådan händelse kan ditt program krascha oväntat.

För att redogöra för sådana möjligheter kan du använda en försök-utom blockera och lägg de felbenägna påståendena inuti Prova blockera. Hela ditt program, tillsammans med blocket förutom försök, ska se ut ungefär så här:

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äkra dina mejl

Om du tänker använda Python i en verklig miljö för att skicka e-post är det viktigt att se till att kommunikationen är säker i båda ändar.

Att använda en enkel SMTP -server med standardporten ger inget krypteringslager till kommunikationen. Det betyder att om någon tredje part lyssnar på ditt nätverk kan den komma åt dina inloggningsuppgifter och informationen i din e-post.

Ett sätt att kringgå detta problem är att använda TLS -protokollet (Transport Layer Security) för att kryptera din kommunikation. Detta är samma protokoll som används av stora e -postklienter som Gmail och Outlook för att se till att dina e -postmeddelanden aldrig hamnar i fel händer.

För att göra det måste vi göra några mindre ändringar av programmet vi skapade tidigare.

Det första steget är naturligtvis att importera ssl bibliotek tillsammans med smtplib . De ssl bibliotek ger dig möjligheten att skapa ett säkert SSL -sammanhang och kommunicera över ett krypterat nätverk genom att ansluta till specifika portar i båda ändar.

Ett säkert SSL -sammanhang är inget annat än en samling chiffer, protokollversioner, betrodda certifikat, TLS -alternativ och TLS -tillägg.

Efter detta kan vi ange TLS -porten och lägga till några ssl biblioteksfunktioner för att skapa en säker e -postmeddelande.

Koden, med alla ändringar som gjorts, ser ungefär ut så här:

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 tidigare bör du skapa och använda SMTP-instansen i ett block utan försök för att förhindra abrupta programkrascher.

hur man laddar ner ett album från facebook

Vad du kan göra med detta Python -skript

Nu när du har fått den fantastiska och förvånansvärt användbara färdigheten att automatisera e -postmeddelanden med kod, kan du använda den på alla plattformar som kräver att du skickar e -post till en varierad e -postlista.

Från att använda den på din personliga webbplats för att skicka automatiserade bekräftelsemail till att använda den för att mejla julkort eller inbjudningar till din familj och vänner, användningen av detta lilla Python -skript begränsas endast av din egen kreativitet.

Detta är också bara en av de många fantastiska sakerna du kan göra med Python. Med sitt allestädes närvarande utvecklarstöd och lättlärda syntax har det aldrig varit enklare att plocka upp en Python-färdighet.

För att fortsätta bygga häftiga saker med kod, kolla in vår guide om hur bygg din egen Telegram -bot med Python 3 !

Dela med sig Dela med sig Tweet E-post Hur du uppgraderar dina Python- och AI -färdigheter med Keras, Pytorch, Tensorflow och mer

Uppgradera dina programmerings- och webbutvecklingskunskaper på Python, artificiell intelligens, Keras, PyTorch och mer

Läs Nästa
Relaterade ämnen
  • Programmering
  • Gmail
  • Tips för e -post
  • Pytonorm
  • Uppgiftsautomation
Om författaren Yash Chellani(10 artiklar publicerade)

Yash är en blivande datavetenskapstudent som älskar att bygga saker och skriva om allt som är tekniskt. På fritiden gillar han att spela Squash, läsa en kopia av den senaste Murakami och jaga drakar i Skyrim.

Mer från Yash Chellani

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera