{"categories":[{"label":"Python Modules","url":"https://skillfed.io/packages/category/software-development-libraries-python-modules/5"},{"label":"Email","url":"https://skillfed.io/packages/category/communications-email"}],"enrichment":{"capability":"Sends and receives email in Django through multiple transactional email service providers (ESPs) with a unified API that avoids vendor lock-in.","skillfed_tags":["email-backend","esp-abstraction","django-integration"],"use_cases":["Send transactional emails (password resets, order confirmations) through a reliable ESP without hardcoding a specific provider's API.","Track email opens, clicks, and bounces by receiving ESP webhooks and converting them to Django signals for analytics.","Switch email providers (e.g., from Mailgun to SendGrid) by changing one configuration line instead of rewriting email code.","Send templated batch emails with merge variables using your ESP's native template engine for performance.","Receive inbound email through an ESP's webhook and process attachments and headers in a normalized, portable way.","Add metadata and tags to sent emails for segmentation and debugging without writing provider-specific code."],"what_it_does":"Django-anymail is a Django email backend that abstracts away the differences between transactional email service providers (ESPs) like Mailgun, SendGrid, Amazon SES, Postmark, and others. Instead of writing code tied to one ESP's API, you configure Anymail to use your chosen provider and then use Django's standard email functions\u2014send_mail, EmailMessage, EmailMultiAlternatives\u2014which Anymail routes through that provider's API. It extends Django's built-in email with ESP-specific features like tags, metadata, click tracking, and inline images, while keeping your code portable so you can switch providers later without rewriting.\n\nAnymail also handles receiving email through ESP webhooks, normalizing inbound messages into a consistent format, and converting ESP tracking notifications (bounces, opens, clicks) into Django signals. It supports batch transactional sends using template and merge features, full Unicode support, and simplified attachment handling. The package is actively maintained, compatible with Django 5.0\u20136.0 and Python 3.10\u20133.14, and has no known security vulnerabilities.","worth_installing":"Yes. Django-anymail is a mature, actively maintained abstraction layer for transactional email that solves real vendor lock-in and portability problems. Low install friction, permissive license, no security vulnerabilities, and broad ESP support make it a solid choice for any Django project that needs reliable email delivery. Install it if you're using Django and any transactional ESP; the abstraction pays for itself the moment you need to switch providers."},"id":"django-anymail","links":{"html":"https://skillfed.io/packages/django-anymail","md":"https://skillfed.io/packages/django-anymail.md","pypi":"https://pypi.org/project/django-anymail/"},"maintenance":{"status":"active"},"meta":{"latest_release":"2026-07-30","license_spdx":"BSD-3-Clause","license_treatment":"permissive","name":"django-anymail","python_support":"supports_current","summary":"Django email backends and webhooks for Amazon SES, Brevo,  MailerSend, Mailgun, Mailjet, Mailtrap, Mandrill, Postal, Postmark, Resend,  Scaleway TEM, SendGrid, SparkPost, and Unisender Go  (EmailBackend, transactional email tracking and inbound email signals)"},"popularity":{"monthly_downloads":3204905,"position":2703,"tier":"top_5000"},"security":{"n_vulnerabilities":0},"version":"15.1"}
