Think Build Implement Repeat
London, UK +44 7367 067226
WhatsApp FOLLOW f in X
  1. Home
  2. Blog
  3. Telling People What They Need to Know
Python & Django

Telling People What They Need to Know

Notifications and email in Django that arrive: authenticated SMTP, queued sending, notifying only those who must act and user control over alerts.

Updated 2 min readBy SpiderHunts Technologies

Free estimateNo obligation

Get a free estimate

Tell us what you need. A senior engineer reads every enquiry.

Takes under a minute. We never share your details.

  • Free consultation
  • No commitment
  • NDA on request

Prefer to talk? Book a free 30-minute call →

Quick answer — TL;DR

Send through authenticated SMTP, queue everything, notify only people who must act, and let users control what they receive.

Email delivery first

Django's default email backend uses whatever the server provides, which frequently means messages sent without proper authentication and discarded by recipient providers without a bounce.

The application logs a success, the user is told it was sent, and nothing arrives. It is the most expensive silent failure in business applications.

Getting delivery right

  1. Authenticated SMTP or a transactional service
  2. Send from a domain you control with correct authentication records
  3. Queue every send, so a provider outage does not break the request
  4. Log every send with its outcome
  5. Handle bounces rather than ignoring them

Notify only who must act

  • The person who has to do something next
  • Not everyone with an interest
  • Not on every state change, only the meaningful ones
  • With a clear statement of what is required
  • And a direct link to the thing

Notifying everybody about everything produces a channel people mute, at which point the important notification is missed too.

Let people control it

SettingWhy
Per notification typeDifferent people care about different things
Digest optionReduces volume without losing information
Per channelEmail, in-app, or both
Honoured immediatelyOtherwise people stop trusting it

Test the templates properly

Email rendering varies enormously between clients. Test the actual templates in the clients your users have, not just in a browser.

And check the plain text alternative, which is what some clients and most accessibility tools will use.

FAQ

Frequently asked questions

The questions readers ask us after this guide.

Still have a question?

Ask us directly — a senior engineer will get back to you.

Ask about your project

Which email service should we use?

Your existing provider for low volume, a transactional service for scale and better delivery logs.

How do we know email is arriving?

Log every send, monitor bounces, and run an automated weekly test to a real inbox.

Why does our mail go to spam?

Usually missing or incorrect domain authentication records. Check those first.

Should notifications be in-app too?

For anything the user should see when they next log in, yes. Email is for things needing attention now.

Keep reading

More on Python & Django

Python & Django

An API Other Systems Can Depend On

Designing a Python API service others can depend on: validation at the boundary, consistent errors and status codes, early versioning and documentation.

Python & Django

Moving and Transforming Data Reliably

Building data pipelines in Python that cope with malformed input: restartable stages, quarantining failures, reconciling counts and alerting on absence.

Start here

Not certain your application's email arrives?

Send yourself one from the live system and check the headers. It is usually revealing.

  1. You tell us what you needTwo minutes on the form, or a message on WhatsApp.
  2. A senior engineer reviews itAnd comes back with questions, a realistic range and an honest view on fit.
  3. Free 30-minute scoping callWe talk through scope, options and a realistic estimate — with no obligation.
Free estimateNo obligation

Talk to someone who builds this

Send a short brief and we will come back with an honest view and a realistic range.

Takes under a minute. We never share your details.

  • Free consultation
  • No commitment
  • NDA on request

Prefer to talk? Book a free 30-minute call →