Kuidas saata python django abil e-kirju tasuta google SMTP serveri kaudu

E-kirjade saatmine on veebisaidi üks olulisi osi. Tegelikult vajavad peaaegu kõik veebisaidid seda osa, kui nad soovivad oma saidile sisse logida näiteks konto aktiveerimise kaudu kasutaja e-posti teel, parooli lähtestamise ja muude tegevuste kaudu. Kui loote django raamistikuga veebisaiti, näitab see õpetus teile, kuidas oma kasutajatele e-kirju saata.

Oma veebisaidilt meilide saatmiseks peab teil olema e-posti server ja sel juhul hakkame kasutama google SMTP serverit. Selle toimimiseks peab teil olema töötav gmaili konto ja oma kontol peate konto turbesätetes lubama vähem turvalise rakenduse funktsiooni lubamise. Logige oma brauseri kaudu sisse oma Google'i kontole ja funktsiooni lubamiseks külastage seda linki. See funktsioon on mõeldud spetsiaalselt teie google'i konto kaitsmiseks selle kasutamise eest vähem turvaliste rakenduste eest, et takistada häkkerite tungimist nende kontode kaudu teie kontole.

django seadistamine Gmaili SMTP-serveri jaoks.

faili settings.py alla peate lisama järgmised seaded.

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_USE_TLS = Tõsi
EMAIL_PORT = 587
EMAIL_HOST_USER = 'your_account@gmail.com'
EMAIL_HOST_PASSWORD = 'teie konto parool'

ülaltoodud seadeid kasutab django e-kirjade saatmise võimaldamiseks teie e-posti hostiserveri kaudu. EMAIL_BACKEND täpsustab django taustaprogrammi, mis töötab EMAIL_HOST osas täpsustatud hostinimeserveriga meie kasutajatele e-kirjade saatmiseks, kuna olete ehk märganud, et EMAIL_HOST väärtus on link google'i täpsustatud lingile google'i smtp-serverile, leiate rohkem teadmisi selle kohta siin. EMAIL_USE_TLS ütleb djangole, millist turvalist protokolli tuleks serveriga ühenduse loomiseks kasutada. Võite kasutada TLS-i, nagu me oleme siin kasutanud, või võite kasutada SSL-i, asendades selle osa EMAIL_USE_SSL-ga ja pannes need tõeseks. Pange tähele, et te ei saa neid mõlemaid korraga kasutada. Kui kasutate TLS-i, on EMAIL_PORT väärtus 587, kuid kui kasutate SSL-i, peab pordi väärtus olema 465. Järgmised kaks osa on iseenesestmõistetavad: pange oma töötav gmaili konto võimaldama vähem turvalise rakenduse funktsioon lubatud ja pange parool hostile paroolimuutuja, pidage meeles, et parool on siin nähtav ja keegi saab seda lihtsalt näha ja kasutada, nii et kui soovite oma veebisaiti majutada, tuleb see krüptida. See on kõik selleks, et valmistada ette django e-kirjade saatmiseks kasutajate e-posti kontole.

vaatefunktsiooni määratlemine

see osa sõltub teie soovist kasutajale meilisõnumeid saata, selle õpetuse lihtsuse huvides eeldan, et soovite teda tänada oma veebisaidile registreerimise eest ja see tähendab teile maailma. Kirjutan veel ühe õpetuse, kuidas aktiveerida teie saidi kasutajakontod e-posti teel kinnituse abil. E-kirjade saatmiseks peate oma Views.py-faili importima järgmised andmed

saidist django.core.mail importida send_mail
saidi django.conf impordiseadetest

send_mail on funktsioon, mis saadab meilisõnumeid meie kasutajatele, see kasutab meie uusi lisatud sätteid failis settings.py. See võtab mitu parameetrit, kuid lihtsuse huvides kasutan minimaalseid parameetreid, mis võimaldavad meil saata e-kirja, mis on mõttekas sellistel eesmärkidel nagu konto kinnituslingi või parooli kinnitamise link. Vaatefailis näevad teie funktsioonid välja sellised

def e-post (taotlus):
    subjekt = 'Täname, et registreerusid meie lehel'
    sõnum = 'see tähendab meile maailma'
    email_from = seaded.EMAIL_HOST_USER
    recipientide loend = ['vastuvõtja@gmail.com',]
    send_mail (teema, kiri, e-posti aadress, saaja_loend)
    tagasi ümbersuunamine ('ümbersuunamine uuele lehele')

See on lihtsaim funktsioon, mida django-maailmas e-kirjade saatmiseks kirjutada saab. Kui teete midagi keerulist, on teil seal tõenäoliselt lisateavet, näiteks kasutate vormilt kasutajate e-posti aadressi võtmist või kui teil on konto aktiveerimine, siis on teil tõenäoliselt mõni funktsioonid krüptitud võtme genereerimiseks, mis saadetakse kasutaja e-posti aadressile ja kui nad sellele klõpsavad, aktiveeritakse nende kontod ja muud sellist, kuid lihtsuse huvides otsustasin selle niimoodi panna. E-posti funktsioon on see, mida kutsutakse url-failist, kui käivitatakse toiming meili saatmiseks. Funktsioon send_mail võtab palju rohkem parameetreid kui need, mida olen ülal kasutanud, selle kohta saate lisateavet selle lingi django dokumentatsioonist.

  • subjekt: meilisõnumi string
  • teade: tegeliku sõnumi jada, mida soovite saata
  • email_from: teie e-posti aadress ja see oli põhjus, miks pidin seadete faili vaatefaili importima, kuid te ei pea seda niimoodi tegema, võite oma e-kirja sinna kirjutada stringina ja see töötab, kuid see aitab vältida vead, mis tulenevad vigadest, näiteks kui teie meilil on trükiviga.
  • vastuvõtja_loend: stringide loend, iga e-posti aadress.

Selle juhendaja jaoks on kõik, mida peate tegema. Täname teid teie aja eest.