Django

Integrate MailSetu with Django using the EMAIL_BACKEND or direct API calls.

Option 1: Direct SDK

Use the Python SDK directly in Django views:

bash
pip install mailsetu

View example

python
from django.views import View
from django.http import JsonResponse
from mailsetu import MailSetu
import os

client = MailSetu(os.environ['MAILSETU_API_KEY'])

class SendWelcomeView(View):
    def post(self, request):
        import json
        data = json.loads(request.body)

        response = client.emails.send(
            from_='App <noreply@yourapp.com>',
            to=[data['email']],
            subject=f"Welcome, {data['name']}!",
            html=f"<h1>Hi {data['name']},</h1><p>Thanks for joining!</p>",
        )

        return JsonResponse({'email_id': response['id']})

Option 2: Django EMAIL_BACKEND

Configure MailSetu as the Django email backend:

python
# settings.py
EMAIL_BACKEND = 'mailsetu.backends.django.MailSetuEmailBackend'
MAILSETU_API_KEY = os.environ['MAILSETU_API_KEY']
DEFAULT_FROM_EMAIL = 'App <noreply@yourapp.com>'

Using Django send_mail

Once configured, use Django's standard send_mail:

python
from django.core.mail import send_mail

send_mail(
    subject='Welcome!',
    message='Thanks for signing up.',
    from_email='App <noreply@yourapp.com>',
    recipient_list=['user@example.com'],
    html_message='<h1>Thanks for signing up!</h1>',
)