Python somo la 61: Jinsi ya kutuma email kwenye django
Katika maeneo ya development, tunahitaji kutuma email mara nyingi kwa madhumuni ya: Kujaribu mfumo wa OTP Password reset System notifications Activation codes Lakini mara nyingi hatutaki emails ziondoke kwenda kwa watu halisi wakati bado tupo kwenye majaribio.
Utangulizi
Django hutupatia njia mbili:
-
Console/Backend email (bila SMTP) – kwa majaribio
-
SMTP (Mailtrap) – kwa majaribio salama bila kutuma email kwa watu halisi
Tutaeleza zote kwa kina na hatua kwa hatua.
SEHEMU YA 1 — Kutuma Email Django Bila SMTP (Console Backend)
Hii ni njia ya majaribio. Email haitatumwa nje; badala yake itachapishwa kama text kwenye terminal.
1. Kwanini Console Backend?
-
Ni salama kwa development
-
Haina gharama
-
Haina hatari ya kutuma email kwa mtu halisi kimakosa
-
Hutumika kuangalia kama function ya email ya mfumo inafanya kazi
Hatua kwa hatua:
STEP 1 — Fungua settings.py
Ongeza:
EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"
Kazi ya Email Backend:
-
Inaiambia Django kwamba badala ya kutumia SMTP
-
Itatumia terminal kuonyesha email
-
Inapuuza host, port, TLS, username, password
Hakuna configuration nyingine inayohitajika.
STEP 2 — Kutuma Email (mfano wa Django view)
from django.core.mail import send_mail
from django.http import HttpResponse
def test_console_email(request):
send_mail(
subject="Test Email - Bongoclass",
message="Hii ni email ya majaribio kutoka Django bila kutumia SMTP.",
from_email="mafunzo@bongoclass.com",
recipient_list=["test@bongoclass.com"],
)
return HttpResponse("Email imechapishwa kwenye terminal!")
Matokeo yatakuwaje?
Ukifungua browser kwenye URL ya view hii, terminal itaonyesha:
Subject: Test Email - Bongoclass
From: mafunzo@bongoclass.com
To: test@bongoclass.com
Hii ni email ya majaribio kutoka Django bila kutumia SMTP.
Hakuna email inayotumwa, ni kwa testing tu.
SEHEMU YA 2 — Kutuma Email Django Kutumia SMTP (Mailtrap)
Ili kupata configuration za smtp tutatumia platform ya mail trap ili kupata free configuration. Hata hivyo unaweza kutumia za mail ama platform nyingine yeyote ile. Mailtrap ni platform tutakayoitumia kupata configuration za SMTP kwa kutuma email za majaribio bila kuzifikisha kwa watu halisi. Ina Inbox bandia (virtual) inayopokea kila email.
smtp ni nini?
SMTP ni kifupi cha Simple Mail Transfer Protocol.
Ni mfumo wa kutuma barua pepe (emails) kwenye mtandao.
Kwa kifupi, ni “lugha” au sheria ambazo server hutumia kutuma email kutoka kompyuta moja kwenda nyingine.
Kabla ya kuendelea na somo, kwanza tunahitaji kupata configuration za smtp hivyo kwanza nenda kwenye tovuti ya mailtrap.io jisajili hapo kisha nenda kwenye sandboxes, kisha tengeneza boxes utaona configuration za smtp utachaguwa language python kisha chaguwa django. utakopi hizo configuration.
Faida za Kutumia Mailtrap
-
Email zinafika kwenye dashboard ya Mailtrap
-
Ni salama (hazivuki kwenye internet ya kweli)
-
Inaonyesha headers, HTML preview, spam score, n.k.
-
Inafaa kwa development kabla ya production
Hatua kwa hatua:
STEP 1 — Pata SMTP Setting za Mailtrap
Nenda:
Mailtrap → Email Testing → Inbox → Integrations → Django
Utapata mfano:
Host: sandbox.smtp.mailtrap.io
Port: 2525
Username: xxxx
Password: yyyy
STEP 2 — Andika configuration kwenye settings.py
EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
EMAIL_HOST = "sandbox.smtp.mailtrap.io" # Server ya Mailtrap
EMAIL_HOST_USER = "USERNAME_YAKO" # Toka Mailtrap
EMAIL_HOST_PASSWORD = "PASSWORD_YAKO" # Toka Mailtrap
EMAIL_PORT = 2525 # Port salama ya SMTP
EMAIL_USE_TLS = True # Kuweka connection salama
EMAIL_FROM = "mafunzo@bongoclass.com" # From email yako
Kazi ya kila kipengele:
| Kipengele | Kazi |
|---|---|
| EMAIL_BACKEND | Django atumie SMTP badala ya console |
| EMAIL_HOST | Server ambayo Django itatuma email |
| EMAIL_HOST_USER | Username ya authentication Mailtrap |
| EMAIL_HOST_PASSWORD | Password ya SMTP Mailtrap |
| EMAIL_PORT | Njia ya kuwasiliana na server |
| EMAIL_USE_TLS | Kuhakikisha usalama wa data |
| EMAIL_FROM | Email itakayoonekana kama mtumaji |
STEP 3 — Django View ya Kutuma Email
from django.core.mail import send_mail
from django.conf import settings
from django.http import HttpResponse
def test_mailtrap_email(request):
send_mail(
subject="Bongoclass - Mailtrap Test",
message="Hii ni barua pepe ya mafunzo kutoka Django kwenda Mailtrap.",
from_email=settings.EMAIL_FROM,
recipient_list=["test@bongoclass.com"],
fail_silently=False,
)
return HttpResponse("Email imeenda Mailtrap!")
STEP 4 — Angalia Mailtrap Inbox
-
Fungua Mailtrap
-
Fungua inbox yako
-
Utaona email imefika
-
Utapata preview ya HTML, raw headers, spam analysis, n.k.
Je wajua…
-
Django haitumi email yoyote bila backend sahihi
-
Console backend ni kwa majaribio tu
-
SMTP backend ndiyo njia rasmi ya kutuma email
-
Mailtrap ni development-safe — hakuna email inayotumwa duniani halisi
-
Django inatumia function moja kuu:
send_mail() -
Ukiweka
fail_silently=True, makosa ya SMTP hayatolewi
Hitimisho
Katika somo linalofuata tutakwenda kujifunza jinsi ya ku upload picha kwenye django. Pia tutajifunza ku display picha.
Jiunge nasi WhatsApp kupata update zetuUmeionaje Makala hii.. ?
Share On:
π1 kitabu cha Simulizi π2 web hosting π3 Dua za Mitume na Manabii π4 Simulizi za Hadithi Audio π5 Tafasiri ya Riyadh Swalihina π6 Sira ya Mtume Muhammad (s.a.w)
Post zinazofanana:
Python somo la 59: Kufanya Mahesabu (Aggregations) Katika Django
Katika somo hili tutajifunza jinsi ya kutumia Django ORM kufanya mahesabu mbalimbali kama Sum, Avg, Count, Max, Min, pamoja na kupunguza idadi ya items zinazoonekana kwenye dashboard (LIMIT). Pia tutajifunza namna ya kutengeneza βdifferenceβ kati ya thamani kubwa na ndogo bila kubadilisha functions zozote ulizokwisha ziandika.
Soma Zaidi...Python somo la 20: Aina za parameter kwenye function
Katika somo hili tutakwend akujifunza kwa urefu zaidi kuhusu parameter ambazo hutumika kwenye functions
Soma Zaidi...Python somo la 49: Jinsi ya ku host project ya Django
Katika somo hili utakwenda kujifunza jinsi ya ku host website ya Django. Hapa tutakwenda kutuma plaform ya pythonanywhere.com.
Soma Zaidi...Python seomo la 55: Kutengeneza Simple Admin Dashboard ya CRUD
Katika somo hili tutajifunza jinsi ya kuunda dashboard rahisi ndani ya Django ambayo itaruhusu mtumiaji kuongeza, kusoma, kuhariri na kufuta taarifa za MenuItem bila kutumia Django built-in admin, bali kwa kutumia HTML templates na views tulizotengeneza sisi wenyewe.
Soma Zaidi...Python somo la 50: database kwneye django
Katika somo hili utakwenda kujifunza vipi django inaweza kuwasiliana na database, utajifunza kuusu orm na model
Soma Zaidi...Python somo la 62 Kupakia picha (upload) na kuisoma kutoka kwenye database
Katika somo hili utakwenda kujifunza jinsi ya kushughulika na faili, kama ku upload faili kwenye django.
Soma Zaidi...