Sende e-post i Python med SMTP

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.

Introduksjon til SMTP

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)

Opprett og send en enkel e-postadresse

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:

  • Opprett et SMTP-objekt for tilkobling til serveren.
  • Logg inn på kontoen din.
  • Definer meldingshoder og innloggingsinformasjon.
  • Lage en MIMEMultipart meldingsobjekt og føy de relevante overskriftene til den, dvs. Fra, Til og Emne.
  • Fest meldingen til meldingen MIMEMultipart gjenstand.
  • Endelig, send meldingen.

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.

Opprett og send en e-post med et vedlegg

I dette eksemplet skal vi sende en e-post med et bildevedlegg. Prosessen ligner på å sende en vanlig tekst-e-post.

  • Opprett et SMTP-objekt for tilkobling til serveren.
  • Logg inn på kontoen din.
  • Definer meldingshoder og innloggingsinformasjon.
  • Lage en MIMEMultipart meldingsobjekt og føy de relevante overskriftene til den, dvs. Fra, Til og Emne.
  • Les og legg bildet til meldingen MIMEMultipart gjenstand.
  • Endelig, send meldingen.
# 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 inkluderer
MIMEMessage og MIMEAudio.

Opprett og send HTML-e-post

Det første vi skal gjøre er å lage en HTML-e-postmal.

Opprett en HTML-mal

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    

Vis i nettleser

Evanto Limited

November 2017

Hvordan komme seg opp og løpe med Vue

I introduksjonsposten for denne serien snakket vi litt om hvordan webdesignere kan ha fordel ved å bruke Vue. I denne opplæringen lærer vi hvordan du får Vue opp ...

Introduserer Haiku: Design og Create Motion

Med bevegelse i økende grad blant webutviklere så er verktøyene som bidrar til å effektivisere etableringen. Haiku er en frittstående ...

Utform bedre erfaringer for web og mobil

Oppheve abonnementet | Tweet | Vis i nettleser

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    

Vis i nettleser

Evanto Limited

November 2017

Hvordan komme seg opp og løpe med Vue

I introduksjonsposten for denne serien snakket vi litt om hvordan webdesignere kan ha fordel ved å bruke Vue. I denne opplæringen vil vi lære å få Vue opp ...

Introduserer Haiku: Design og Create Motion

Med bevegelse i økende grad blant webutviklere så er verktøyene som bidrar til å effektivisere etableringen. Haiku er en frittstående ...

Utform bedre erfaringer for web og mobil

Oppheve abonnementet | Tweet | Vis i nettleser

msg ['msgid' 'msgid' '' '============================================================================================================= add_header ('Content-Type', 'text / html') msg.set_payload (email_content) s = smtplib.SMTP ('smtp.gmail.com: 587') s.starttls () # Logg inn legitimasjon for å sende posten s. logg inn (msg ['From'], passord) s.sendmail (msg ['From'], [msg ['Til']], msg.as_string ())

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.

Konklusjon

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.