# anymail/django-anymail

Django email backends and webhooks for Amazon SES, Brevo, MailerSend, Mailgun, Mailjet, Mailtrap, Postmark, Postal, Resend, Scaleway TEM, SendGrid, SparkPost, Unisender Go and more

Repository: https://github.com/anymail/django-anymail
Canonical: https://ross.abutalabs.com/products/django-anymail
Homepage: https://anymail.dev
Language: Python
License: BSD-3-Clause
License Family: permissive
Topics: django, email, mailgun, postmark, sendgrid, sparkpost, mandrill, mailjet, sendinblue, amazon-ses, postal, mailersend, brevo, resend, resend-email, unisender, unisender-go, scaleway, mailtrap
Last push: 2026-07-30T22:29:31+00:00

## Health v2 (maintenance only)
Score: 88/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 95, release rhythm 71, longevity 100
- inputs: {"age_days": 3828, "days_push": 34, "days_rel": 34, "gap_med": 108.5, "n_releases_24m": 7}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1897, forks 149 (observed 2026-08-28T04:05:51.057757+00:00)

## What it is
A Django library providing email backends and webhook integrations for many transactional email service providers (ESPs) such as Amazon SES, Mailgun, SendGrid, Postmark, and Resend. It extends django.core.mail with a consistent, ESP-portable API for sending, tracking, and receiving email.

## Use cases
- send transactional email from Django via Mailgun or SendGrid
- switch email providers without rewriting email code
- receive inbound email through ESP webhooks in Django
- track email opens, bounces, and deliveries with Django signals
- send batch/merge-template emails through an ESP
- embed inline images in HTML email from Django

## When to choose
- you use Django and want a unified API across multiple transactional ESPs
- you need normalized webhook handling for delivery/tracking events
- you want to avoid vendor lock-in to a single email provider
- you need inbound email parsing with portable attachment access

## When to avoid
- you're not using Django (it depends on django.core.mail)
- you need a general-purpose SMTP library rather than ESP API integration
- you rely on an ESP not in the supported list

## Facets
- artifact type: library
- maturity: active
- function: email, webhook, http-client, middleware
- domain: email, web-development, backend, apis
- platform: python, self-hosted
- tags: django, transactional-email, esp, email-backend, sendgrid, mailgun, amazon-ses, postmark, inbound-email, email-tracking, web-server

## Member repositories
- anymail/django-anymail (main) score 88

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:51.057757+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:12:48.351056+00:00, confidence not recorded.
  - readme: https://github.com/anymail/django-anymail (fetched 2026-08-28T04:05:51.057757+00:00, sha 1834a00c51ae)
  - homepage: https://anymail.dev (fetched 2026-08-29T10:51:47.429265+00:00, sha 7162b66ec13e)
  - site_page: https://anymail.dev/en/stable/installation (fetched 2026-08-29T10:51:47.440601+00:00, sha b24714d56121)
  - site_page: https://anymail.dev/en/stable/docs_privacy (fetched 2026-08-29T10:51:47.446271+00:00, sha c60f0af65a39)
  - site_page: https://anymail.dev/en/stable/quickstart (fetched 2026-08-29T10:51:47.438654+00:00, sha 5a36228c56aa)
  - registry_pypi: https://pypi.org/pypi/django-anymail/json (fetched 2026-08-29T10:51:47.450164+00:00, sha 89b2ab702547)
  - site_page: https://anymail.dev/en/stable/changelog (fetched 2026-08-29T10:51:47.442966+00:00, sha dfa1cd68d725)
  - site_page: https://anymail.dev/en/stable/contributing (fetched 2026-08-29T10:51:47.448144+00:00, sha 58cc8e68cfcd)
- Data as of 2026-08-30T08:39:29.467469+00:00.
