Denna handledning ger en introduktion till SMTP, en Python-modul som används för att skicka e-post. Det kommer också att visa hur man skickar olika e-posttyper som enkla textemails, e-postmeddelanden med bilagor och e-postmeddelanden med HTML-innehåll.
SMTP (Simple Mail Transfer Protocol) hanterar sändning och routing av e-post mellan postservrar.
I Python, den smtplib
modulen definierar ett SMTP-klientsessionsobjekt som kan användas för att skicka mail till en Internet-maskin med en SMTP- eller ESMTP-lyssnerdemon.
Så här skapar du ett SMTP-objekt.
importera smtplib server = smtplib.SMTP (värd = 'host_address', port = your_port)
Följande skript låter dig skicka ett mail via Gmail SMTP-servern. Google tillåter dock inte inloggning via smtplib
eftersom den har flaggat denna typ av inloggning som "mindre säker". För att lösa detta, gå till https://www.google.com/settings/security/lesssecureapps när du är inloggad på ditt Google-konto och "Tillåt mindre säkra appar". Se skärmdump nedan.
Vi följer följande steg för att uppnå denna process:
MIMEMultipart
meddelandeobjekt och bifoga de aktuella rubrikerna till den, dvs Från, Till och Ämne.MIMEMultipart
objekt.Denna process är så enkel som visas nedan.
# importera nödvändiga paket från email.mime.multipart import MIMEMultipart från email.mime.text import MIMEText import smtplib # skapa meddelandeobjekt instans msg = MIMEMultipart () message = "Tack" # setup parametrarna för meddelandet password = "your_password" msg ['From'] = "your_address" msg ['Till'] = "till_adress" msg ['Subject'] = "Prenumeration" # lägg till i meddelandekroppen msg.attach (MIMEText (message, plain) skapa server server = smtplib.SMTP ('smtp.gmail.com: 587') server.starttls () # Logga in Referenser för att skicka mail server.login (msg ['Från'], lösenord) # skicka meddelandet via servern . server.sendmail (msg ['Från'], msg ['Till'], msg.as_string ()) server.quit () skriv ut "framgångsrikt skickat email till% s:"% (msg ['To'])
Observera att adresserna "Till" och "Från" måste inkluderas i meddelandehuvudena.
I det här exemplet skickar vi ett mail med en bildbilaga. Processen liknar att skicka en vanlig text-e-post.
MIMEMultipart
meddelandeobjekt och bifoga de aktuella rubrikerna till den, dvs Från, Till och Ämne.MIMEMultipart
objekt.# send_attachment.py # importera nödvändiga paket från email.mime.multipart importera MIMEMultipart från email.MIMEImage import MIMEImage från email.mime.text import MIMEText import smtplib # skapa meddelandeobjekt instans msg = MIMEMultipart () # konfigurera parametrarna i meddelande lösenordet msg ['From'] = "your_address" msg ['Till'] = "till_adress" msg ['Subject'] = "Bilder" # bifoga bild till meddelandekroppen msg.attach (MIMEImage .jpg ") .läs ())) # skapa serverserver = smtplib.SMTP ('smtp.gmail.com: 587') server.starttls () # Logga in Referenser för att skicka mail server.login (msg ['From' ], lösenord) # skicka meddelandet via servern. server.sendmail (msg ['Från'], msg ['Till'], msg.as_string ()) server.quit () skriv ut "framgångsrikt skickat email till% s:"% (msg ['To'])
De MIMEImage
klassen är en underklass av MIMENonMultipart
som används för att skapa MIME-meddelandeobjekt för bildtyper.Andra tillgängliga klasser inkluderarMIMEMessage
och MIMEAudio
.
Det första vi ska göra är att skapa en HTML-mall för e-post.
Här är HTML-koden för mallen, och den innehåller två tabellkolumner vardera med en bild och ett förhandsgranskningsinnehåll. Om du föredrar en färdig, professionell lösning, ta våra bästa e-mallar. Vi har ett antal responsiva alternativ med lättanpassade funktioner för att komma igång med.
Tutsplus Email Nyhetsbrev
|
Mallen kommer äntligen se ut så här när den är klar:
Nedan finns manuset för att skicka ett email med HTML-innehåll. Innehållet i mallen kommer att vara vårt e-postmeddelande.
importera smtplib importera email.message server = smtplib.SMTP ('smtp.gmail.com:587') email_content = "" "Tutsplus Email Nyhetsbrev
|
Kör din kod, och om inget fel uppstår, var e-posten framgångsrik. Gå nu till din inkorg och du ska se din e-post som HTML-innehåll snyggt formatterat.
Denna handledning har täckt det mesta av vad som behövs för att skicka e-post till din ansökan. Det finns flera API-skivor tillgängliga för att skicka e-postmeddelanden, så du behöver inte börja från början, t.ex. SendGrid, men det är också viktigt att förstå grunderna. För mer information, besök Python docs.
Tveka inte att se vad vi har till salu och studera i Envato Market, och fråga eventuella frågor och ge din värdefulla feedback genom att använda foderet nedan.