Send emails with Django
Prerequisites
Section titled “Prerequisites”Before you start, you'll need:
- A Resend API key
- A verified domain
Install
Get the django-anymail package with Resend support.
Pip pip install django-anymail[resend]Configure
Add Anymail to your Django settings.
settings.py import os INSTALLED_APPS = [ # ... "anymail", ] EMAIL_BACKEND = "anymail.backends.resend.EmailBackend" ANYMAIL = { "RESEND_API_KEY": os.environ.get("RESEND_API_KEY"), } DEFAULT_FROM_EMAIL = "onboarding@resend.dev"Send email using HTML
The easiest way to send an email is by using the
html_messageparameter.views.py from django.core.mail import send_mail from django.http import JsonResponse def send_email(request): send_mail( subject="Hello from Django + Resend", message="This is a plain text message.", from_email="Acme <onboarding@resend.dev>", recipient_list=["delivered@resend.dev"], html_message="<strong>it works!</strong>", ) return JsonResponse({"message": "Email sent successfully"})Send email using a template
For more complex emails, you can use Django's template system.
First, create an HTML template at
templates/emails/welcome.html:templates/emails/welcome.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>Welcome Email</title> </head> <body style="font-family: Arial, sans-serif; line-height: 1.6; color: #333;"> <h1>Welcome, {{ user_name }}!</h1> <p>Thank you for joining our service.</p> <p>Your account email: <strong>{{ user_email }}</strong></p> <p> <a href="{{ dashboard_url }}" style="background-color: #007bff; color: white; padding: 10px 20px; text-decoration: none; border-radius: 5px;" > Go to Dashboard </a> </p> </body> </html>Then render and send the template:
views.py from django.core.mail import EmailMessage from django.http import JsonResponse from django.template.loader import render_to_string def send_template_email(request): html_content = render_to_string('emails/welcome.html', { 'user_name': 'Django Developer', 'user_email': 'delivered@resend.dev', 'dashboard_url': 'https://example.com/dashboard', }) message = EmailMessage( subject="Welcome to Our Service!", body=html_content, from_email="Acme <onboarding@resend.dev>", to=["delivered@resend.dev"], ) message.content_subtype = "html" message.send() return JsonResponse({"message": "Email sent successfully"})
Examples
Section titled “Examples”Django App
Full Django web application
Basic Send
Basic email sending
Attachments
Send emails with file attachments
Templates
Send emails using Resend hosted templates
Scheduling
Schedule emails for future delivery
Audiences
Manage contacts and audiences
Domains
Create and manage sending domains
Inbound Webhooks
Receive and process inbound emails
Double Opt-in
Double opt-in subscription flow