# Django

Configure Django’s SMTP backend and send multipart email.

Before you begin, verify a sending domain and create an [API key](https://usesendy.com/docs/authentication). Keep the key in your application server’s secret configuration.

## Configure Django

Set these values in your Django settings module. Restart your application after changing them.

Use this configuration:

settings.py

```
EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
EMAIL_HOST = "smtp.usesendy.com"
EMAIL_PORT = 2525
EMAIL_USE_TLS = True
EMAIL_USE_SSL = False
EMAIL_HOST_USER = "apikey"
EMAIL_HOST_PASSWORD = "API_KEY"
DEFAULT_FROM_EMAIL = "My App <noreply@example.com>"
```

Replace `API_KEY` with your full Sendy API key and the sender with an address on your verified domain. Use STARTTLS on port 2525 with the literal username `apikey`. See [Django email documentation](https://docs.djangoproject.com/en/5.2/topics/email/).

## Send a test email

Open your application’s shell:

Open shell · terminal

```
python manage.py shell
```

Replace the recipient with your test address, then run:

Send a test email

```
from django.conf import settings
from django.core.mail import send_mail

send_mail(
    subject="Welcome",
    message="Your account is ready.",
    from_email=settings.DEFAULT_FROM_EMAIL,
    recipient_list=["recipient@example.com"],
    html_message="<h1>Welcome</h1><p>Your account is ready.</p>",
    fail_silently=False,
)
```

The shell returns 1 after a successful SMTP submission.

## Check the result

Open [Emails](https://usesendy.com/emails) to confirm the message was queued and follow its status. Successful SMTP submission confirms queuing, not inbox delivery. See [Errors](https://usesendy.com/docs/errors) for failure guidance.
