Mitä sinun täytyy lähettää sähköpostia, jossa Python? Joitakin perusohjelmointia ja web-tietoa sekä alkeis Python taitoja. Oletamme, että olet jo web-sovellus rakennettu tätä kieltä ja nyt sinun täytyy laajentaa sen toiminnallisuutta ilmoituksia tai muita sähköposteja lähettämällä. Tämä opetusohjelma opastaa oleellisimmat vaiheet lähettää sähköposteja kautta SMTP-palvelin:

  1. Konfigurointi palvelimen testaus (tiedätkö miksi se on tärkeää?,)
    • Paikallinen SMTP-palvelin
    • Mailtrap fake SMTP-palvelin
  2. Eri tyyppisiä sähköposteja: HTML, kuvia ja liitetiedostoja
  3. Lähettää useita henkilökohtaisia sähköposteja (Python on vain korvaamaton sähköposti automaatio)
  4. Jotkut suosittu sähköpostin lähettäminen vaihtoehtoja, kuten Gmail ja kaupallisen sähköposti-palvelut

Tarjolla lukuisia koodi esimerkkejä!

Huomautus: kirjoitettu ja testattu Python 3.7.2.

sähköpostin lähettäminen SMTP

ensimmäinen hyvä uutinen Pythonista on se, että siinä on sisäänrakennettu moduuli sähköpostien lähettämiseen SMTP: n kautta sen vakiokirjastossa., Ylimääräisiä installaatioita tai temppuja ei tarvita. Voit tuoda moduuli käyttämällä seuraavan lausuman:

import smtplib

varmista, että moduuli on tuotu kunnolla ja saada täydellinen kuvaus sen luokat ja perustelut, kirjoittaa interaktiivisen Python-istunto:

help(smtplib)

– meidän seuraava askel, aiomme puhua vähän noin palvelimet: valita oikea vaihtoehto, ja säätämällä se.,

SMTP-palvelin sähköpostien testaamiseen Python

: ssä uutta sovellusta luotaessa tai toimintoja lisättäessä, varsinkin kun teet sen ensimmäistä kertaa, on olennaista kokeilla testipalvelimella. Tässä lyhyt lista syitä:

  1. et lyö kavereiden ja asiakkaiden postilaatikoihin. Tämä on tärkeää, kun testaat irtotavarana sähköpostin lähettämistä tai työskennellä sähköpostitietokannan kanssa.
  2. et tulvi omaa postilaatikkoasi testaussähköposteilla.
  3. verkkotunnuksesi ei ole mustalla listalla roskapostin vuoksi.,

Paikallinen SMTP-palvelin

Jos haluat työskennellä paikallisen ympäristön, paikallisen SMTP-testaus-palvelin saattaa olla vaihtoehto. Tätä tarkoitusta varten Python tarjoaa smtpd-moduulin. Siinä on DebuggingServer-ominaisuus, joka hylkää lähettämäsi viestit ja tulostaa ne stdoutiin. Se on yhteensopiva kaikkien toimintajärjestelmien kanssa.,

Määritä SMTP-palvelin localhost:1025

python -m smtpd -n -c DebuggingServer localhost:1025

jotta ajaa SMTP-palvelimen portti 25, tarvitset root oikeudet:

sudo python -m smtpd -n -c DebuggingServer localhost:25

Se auttaa sinua tarkistaa, onko koodi toimii ja huomauttaa mahdollisista ongelmista, jos sellaisia on. Kuitenkin, se ei anna sinulle mahdollisuutta tarkistaa, miten HTML email malli on renderoitu.,

Fake SMTP-palvelin

Fake SMTP-palvelimen jäljittelee työn todellinen 3rd party web-palvelin. Seuraavassa esimerkissä tässä viestissä, käytämme Mailtrap. Jälkeen testaus sähköpostin lähettämiseen, se antaa meille tarkistaa, miten sähköposti on suoritettu ja näkyy, tarkista viesti raaka-tietoja sekä antaa meille spam raportti., Mailtrap on erittäin helppo asentaa: sinun tarvitsee vain kopioida sovelluksen luomat valtakirjat ja liittää ne koodiisi.

Tässä on, miten se näyttää käytännössä:

Mailtrap tekee asiat entistä helpompaa. Siirry SMTP-asetukset-välilehden integraatiot-osioon ja hanki yksinkertaisen viestin käyttövalmis malli, jossa on Mailtrap-tunnistetiedot., Se on yksinkertaisin vaihtoehto ohjeistaa Python skripti, joka lähettää mitä ja kenelle on sendmail() esimerkiksi menetelmä:

Yritä Mailtrap Ilmaiseksi

koodi näyttää melko yksinkertainen, eikö? Katsotaanpa tarkemmin sitä ja lisää joitakin virheenkäsittely (katso #selitykset välillä). Virheiden kiinnisaamiseksi käytämme” kokeile ”ja” paitsi ” – lohkoja. Katso poikkeusluettelon asiakirjat täältä.,

Kun saat Lähetti johtaa Kuori, sinun pitäisi nähdä viestin Mailtrap saapuneet:

Lähettää HTML email

useimmissa tapauksissa, sinun täytyy lisätä joitakin muotoiluja, linkkejä, tai kuvien sähköposti-ilmoitukset. Voimme yksinkertaisesti laittaa kaikki nämä HTML-sisältöä. Tätä tarkoitusta varten Pythonilla on sähköpostipaketti.

käsittelemme MIME-viestityyppiä, joka pystyy yhdistämään HTML: n ja tavallisen tekstin. Pythonissa se hoidetaan sähköpostilla.mime-moduuli.,

– Se on parempi kirjoittaa teksti-versio ja HTML-versio erikseen, ja sitten yhdistää ne MIMEMultipart(”alternative”) – esiintymää. Se tarkoittaa, että tällaisella viestillä on kaksi renderointivaihtoehtoa vastaavasti. Jos HTML: ää ei jostain syystä renderoida onnistuneesti, tekstiversio on edelleen saatavilla.

Input:

tuloksena on:

Lähettää sähköposteja, joissa on liitteitä Python

seuraava askel masterointi lähettää sähköposteja Python on liittää tiedostoja., Liitteet ovat edelleen MIME-objekteja, mutta meidän on koodattava ne base64-moduulilla. Pari tärkeää kohtaa liitteistä:

  1. Python voit liittää tekstitiedostoja, kuvia, äänitiedostoja ja jopa sovelluksia. Sinun tarvitsee vain käyttää asianmukaista sähköpostiluokkaa, kuten sähköpostia.mime.Audio.MIMEAudio tai sähköposti.mime.kuva.MIMEImage. Lisätietoja on Python-dokumentaation tässä osassa. Voit myös tarkistaa Pythonin tarjoamat esimerkit paremman ymmärryksen saamiseksi.
  2. muista tiedostokoko: Tiedostojen lähettäminen yli 20mb on huono käytäntö.,

kaupallisen sähköpostit, PDF-tiedostot ovat yleisimmin käytetyt: me yleensä saada kuitit, liput, maihinnousukortit, tilaukset, vahvistukset, jne. Joten tarkastellaan, miten lähettää boarding pass PDF-tiedostona.

Input:

jos Haluat liittää useita tiedostoja, voit soittaa viestin.liitä () menetelmä useita kertoja.

Kuinka lähettää sähköpostia kuvat

Kuvat, vaikka ne ovat osa viestin runko, liitetiedostoja sekä., Niitä on kolmea tyyppiä: CID-liitteet (upotettu MIME-objektiksi), base64-kuvat (inline-upotus) ja linkitetyt kuvat. Olemme kuvailleet niiden erityispiirteitä, hyviä ja huonoja puolia sekä yhteensopivuutta useimpien sähköpostiohjelmien kanssa tässä viestissä.

hypätään esimerkkeihin.

lisäämällä CID kiinnitys, luomme MIME-multipart-viesti, jossa MIMEImage komponentti:

Lähtö:

CID kuva näkyy sekä osa HTML-viesti ja liitetiedostona., Viestit tämän kuvan tyyppi on usein roskapostiksi: tarkista Analytics-välilehti Mailtrap nähdä roskapostin hintaan ja suosituksia sen parantamiseen. Monet sähköpostiohjelmat-erityisesti Gmail-eivät näytä CID-kuvia useimmissa tapauksissa. Joten katsotaanpa, miten upottaa base64 koodattu kuva.

Tässä käytämme base64-moduuli ja kokeilla saman kuvan tiedosto:

tuloksena on:

Nyt kuva on upotettu osaksi HTML-viestin, ja ei ole saatavilla liitetiedosto., Python on koodannut jpg-kuvamme, ja jos menemme HTML Source-välilehteen, näemme img src: n pitkän kuvadatan merkkijonon.

Miten lähettää useita sähköposteja Python

Lähettää useita sähköposteja eri vastaanottajille ja tekemällä niistä henkilökohtaisia on erikoista se, että sähköpostit Python.

Lisää useita vastaanottajia, voit vain kirjoittaa osoitteensa pilkulla erotettuna, lisätä CC: n ja BCC: n. Mutta jos työskentelet irtotavarana sähköpostin lähettäminen, Python tallentaa sinut silmukoita.

yksi vaihtoehdoista on tietokannan luominen A: ssa .,csv-muoto (oletamme, että se tallennetaan samaan kansioon kuin Python-skriptisi).

nimiämme näkee usein transaktioesimerkeissä tai jopa promootioesimerkeissä. Näin voimme tehdä sen Python.

Let ’ s organize the list in a simple table with just two columns: name and email address. Se pitäisi näyttää, kuten seuraavassa esimerkissä:

#name,emailJohn Johnson,[email protected] Peterson,[email protected]

alla Oleva koodi avaa tiedoston ja silmukan yli sen rivit rivi riviltä, korvaa {nimi} kanssa arvo ”nimi” – sarakkeessa.,

Input:

Kun käynnissä käsikirjoituksen, saamme seuraavan vastauksen:

Sent to John JohnsonSent to Peter Peterson>>> 

Lähtö

– meidän Mailtrap saapuneet, näemme kaksi viestiä: yksi John Johnson ja Peter Peterson, toimitetaan samanaikaisesti:

Lähettää sähköposteja Python kautta Gmail

Kun olet valmis, lähettää sähköposteja real vastaanottajille, voit määrittää oman tuotannon palvelin. Se riippuu myös tarpeistasi, tavoitteistasi ja mieltymyksistäsi: localhostista tai mistä tahansa ulkoisesta SMTP: stä.,

yksi suosituimmista vaihtoehdoista on Gmail, joten katsotaan sitä tarkemmin.

voimme usein nähdä otsikot, kuten ”miten perustaa Gmail-tilin kehittämistä varten”. Itse asiassa, se tarkoittaa, että voit luoda uuden Gmail-tilin ja käyttää sitä tiettyyn tarkoitukseen.

jotta voit lähettää sähköpostia Gmail-tilisi kautta, Sinun on tarjottava pääsy siihen sovellustasi varten. Voit sallia vähemmän suojattuja sovelluksia tai hyödyntää OAuth2-valtuutusprotokollaa. Se on paljon vaikeampaa, mutta suositeltavaa turvallisuussyistä.,

Edelleen käyttää Gmail-palvelimen, sinun tarvitsee tietää:

  • palvelimen nimi = smtp.gmail.com
  • portti = 465 SSL/TLS-yhteyden avulla (suositus)
  • tai portti = 587 varten STARTTLS-yhteys.
  • käyttäjätunnus = Gmail-sähköpostiosoitteesi
  • salasana = salasanasi.

Jos sinulla on taipumusta yksinkertaisuuteen, voit käyttää yagmailia, omaa Gmailia / SMTP: tä. Se tekee sähköpostin lähettämisestä todella helppoa., Vain verrata edellä mainitut esimerkit näiden useita riviä koodia:

Kaupallisen sähköposti-palvelut

Gmail on ilmainen ja laajalti käytössä, mutta se on vielä rajoituksia sähköpostin lähettämiseen. Jos tarpeesi menevät paljon Gmailin sääntöjä pidemmälle, valitse yksi transactional services-vaihtoehdoista tai kuten niitä myös kutsutaan, email API-palvelut.

Python tukee valtaosa luotettu sähköposti APIs, joten voit valita mukaan teidän mieltymykset ja budjetti.,

Tässä muutamia ohjeita sähköpostien Python läpi luettelo suosituimmista palveluista:

  • Amazon SES
  • Mailgun
  • Mandrill
  • Postileima
  • Sendgrid
  • SocketLabs

seuraavat vaiheet kanssa sähköposteja Python

– Olemme osoittaneet vain perus vaihtoehtoja, lähettää sähköposteja, Python, kuvaamaan logiikkaa ja erilaisia sen ominaisuuksia. Saat hyviä tuloksia, suosittelemme tarkistamaan Python-dokumentaation ja vain kokeilemaan omaa koodiasi!,

on joukko erilaisia Python-kehyksiä ja kirjastoja, jotka tekevät sovellusten luomisesta tyylikkäämpää ja omistautuneempaa. Erityisesti, jotkut niistä voivat auttaa parantamaan kokemusta rakennus sähköpostien lähettämisen toimintoja:

suosituin puitteet ovat:

  1. Pulloon, joka tarjoaa yksinkertaisen käyttöliittymän, sähköpostin lähettäminen— Pullo Postia.
  2. Django, joka voi olla hyvä vaihtoehto HTML-mallien rakentamiseen. (Ja tässä on meidän opetusohjelma lähettää sähköposteja Django).
  3. Zope on kätevä verkkosivujen kehittämiseen.,
  4. Luuydinpostin on oma postinjakelukehys, jossa on useita hyödyllisiä kokoonpanoja.
  5. Plotly ja sen viiva voivat auttaa graafien ja Raporttien lähettämisessä.