Denne opplæringen vil gi en introduksjon til SMTP, en Python-modul som brukes til å sende e-post. Det vil også demonstrere hvordan du sender forskjellige e-posttyper som enkle tekstmeldinger, e-post med vedlegg og e-post med HTML-innhold.
SMTP (Simple Mail Transfer Protocol) håndterer sending og ruting av e-post mellom postservere.
I Python, den smtplib
modul definerer et SMTP-klientsøktobjekt som kan brukes til å sende e-post til en hvilken som helst Internett-maskin med en SMTP- eller ESMTP-lytterdemon.
Slik lager du et SMTP-objekt.
importere smtplib server = smtplib.SMTP (host = 'host_address', port = your_port)
Følgende skript vil tillate deg å sende en e-post via Gmail SMTP-serveren. Google tillater imidlertid ikke å logge på via smtplib
fordi den har flagget denne typen innlogging som "mindre sikker". For å løse dette, gå til https://www.google.com/settings/security/lesssecureapps mens du er logget på Google-kontoen din og "Tillat mindre sikre apper". Se skjermbilde nedenfor.
Vi vil følge disse trinnene for å oppnå denne prosessen:
MIMEMultipart
meldingsobjekt og føy de relevante overskriftene til den, dvs. Fra, Til og Emne.MIMEMultipart
gjenstand.Denne prosessen er så enkel som vist nedenfor.
# importer nødvendige pakker fra email.mime.multipart import MIMEMultipart fra email.mime.text import MIMEText import smtplib # opprett melding objekt eksempel msg = MIMEMultipart () message = "Thank you" # oppsett parametrene til meldingen password = "your_password" msg ['From'] = "din adresse" msg ['Til'] = "til_address" msg ['Subject'] = "Abonnement" # legg til i meldingslegemet msg.attach (MIMEText (melding, 'vanlig')) opprett server server = smtplib.SMTP ('smtp.gmail.com: 587') server.starttls () # Logg inn Referanser for sending av mail server.login (msg ['From'], passord) # send meldingen via serveren . server.sendmail (msg ['From'], msg ['Til'], msg.as_string ()) server.quit () print "vellykket sendt epost til% s:"% (msg ['Til'])
Merk at adressene "Til" og "Fra" må inkluderes i meldingshodene eksplisitt.
I dette eksemplet skal vi sende en e-post med et bildevedlegg. Prosessen ligner på å sende en vanlig tekst-e-post.
MIMEMultipart
meldingsobjekt og føy de relevante overskriftene til den, dvs. Fra, Til og Emne.MIMEMultipart
gjenstand.# send_attachment.py # importer nødvendige pakker fra email.mime.multipart import MIMEMultipart fra email.MIMEImage import MIMEImage fra email.mime.text import MIMEText import smtplib # opprett meldingsobjekt instans msg = MIMEMultipart () # oppsett parametrene til meldingspassordet msg ['From'] = "your_address" msg ['Til'] = "til_address" msg ['Subject'] = "Bilder" # legg til bilde i meldingslegemet msg.attach (MIMEImage .jpg ") .les ())) # opprett server server = smtplib.SMTP ('smtp.gmail.com: 587') server.starttls () # Logg inn Referanser for sending av mail server.login (msg ['From' ], passord) # send meldingen via serveren. server.sendmail (msg ['From'], msg ['Til'], msg.as_string ()) server.quit () print "vellykket sendt epost til% s:"% (msg ['Til'])
De MIMEImage
klassen er en underklasse av MIMENonMultipart
som brukes til å lage MIME-meldingsobjekter av bildetyper.Andre tilgjengelige klasser inkludererMIMEMessage
og MIMEAudio
.
Det første vi skal gjøre er å lage en HTML-e-postmal.
Her er HTML-koden for malen, og den inneholder to tabellkolonner hver med et bilde og forhåndsvisningsinnhold. Hvis du foretrekker en ferdig, profesjonell løsning, ta tak i våre beste e-postmaler. Vi har en rekke responsive alternativer med lett å tilpasse funksjoner for å komme i gang med.
Tutsplus Email Nyhetsbrev
|
Malen vil til slutt se ut som dette når du er ferdig:
Nedenfor er skriptet for å sende en e-post med HTML-innhold. Innholdet i malen er vår e-postmelding.
importer smtplib import email.message server = smtplib.SMTP ('smtp.gmail.com:587') email_content = "" "Tutsplus Email Nyhetsbrev
|
Kjør koden din, og hvis det ikke oppstår en feil, var e-posten vellykket. Gå nå til innboksen din, og du bør se din e-post som HTML-innhold pent formatert.
Denne opplæringen har dekket det meste av det som trengs for å sende e-post til din søknad. Det finnes flere APIer tilgjengelig for sending av e-post, så du trenger ikke starte fra grunnen, for eksempel SendGrid, men det er også viktig å forstå det grunnleggende. For mer informasjon, besøk Python docs.
I tillegg, ikke nøl med å se hva vi har tilgjengelig for salg og for studier i Envato Market, og vær så snill å stille spørsmål og gi din verdifulle tilbakemelding ved å bruke feedet under.