Configuration¶
Configuration of django-email-relay
is done through the DJANGO_EMAIL_RELAY
dictionary in your Django settings.
Depending on whether you are configuring the relay service or the Django app, different settings are available. Some settings are available for both, while others are only available for one or the other. If you configure a setting that does not apply, for instance, if you configure something related to the relay service from one of the distributed Django apps, it will have no effect. See the individual sections for each setting below for more information.
All settings are optional. Here is an example configuration with the default values shown:
DJANGO_EMAIL_RELAY = {
"DATABASE_ALIAS": email_relay.conf.EMAIL_RELAY_DATABASE_ALIAS, # "email_relay_db"
"EMAIL_MAX_BATCH": None,
"EMAIL_MAX_DEFERRED": None,
"EMAIL_MAX_RETRIES": None,
"EMPTY_QUEUE_SLEEP": 30,
"EMAIL_THROTTLE": 0,
"MESSAGES_BATCH_SIZE": None,
"MESSAGES_RETENTION_SECONDS": None,
"RELAY_HEALTHCHECK_METHOD": "GET",
"RELAY_HEALTHCHECK_STATUS_CODE": 200,
"RELAY_HEALTHCHECK_TIMEOUT": 5.0,
"RELAY_HEALTHCHECK_URL": None,
}
DATABASE_ALIAS
¶
Component |
Configurable |
---|---|
Relay Service |
Yes ✅ |
Django App |
Yes ✅ |
The database alias to use for the email relay database. This must match the database alias used in your DATABASES
setting. A default is provided at email_relay.conf.EMAIL_RELAY_DATABASE_ALIAS
. You should only need to set this if you are using a different database alias.
EMAIL_MAX_BATCH
¶
Component |
Configurable |
---|---|
Relay Service |
Yes ✅ |
Django App |
No 🚫 |
The maximum number of emails to send in a single batch. The default is None
, which means there is no limit.
EMAIL_MAX_DEFERRED
¶
Component |
Configurable |
---|---|
Relay Service |
Yes ✅ |
Django App |
No 🚫 |
The maximum number of emails that can be deferred before the relay service stops sending emails. The default is None
, which means there is no limit.
EMAIL_MAX_RETRIES
¶
Component |
Configurable |
---|---|
Relay Service |
Yes ✅ |
Django App |
No 🚫 |
The maximum number of times an email can be deferred before being marked as failed. The default is None
, which means there is no limit.
EMPTY_QUEUE_SLEEP
¶
Component |
Configurable |
---|---|
Relay Service |
Yes ✅ |
Django App |
No 🚫 |
The time in seconds to wait before checking the queue for new emails to send. The default is 30
seconds.
EMAIL_THROTTLE
¶
Component |
Configurable |
---|---|
Relay Service |
Yes ✅ |
Django App |
No 🚫 |
The time in seconds to sleep between sending emails to avoid potential rate limits or overloading your SMTP server. The default is 0
seconds.
MESSAGES_BATCH_SIZE
¶
Component |
Configurable |
---|---|
Relay Service |
No 🚫 |
Django App |
Yes ✅ |
The batch size to use when bulk creating Messages
in the database. The default is None
, which means Django’s default batch size will be used.
MESSAGES_RETENTION_SECONDS
¶
Component |
Configurable |
---|---|
Relay Service |
Yes ✅ |
Django App |
No 🚫 |
The time in seconds to keep Messages
in the database before deleting them. None
means the messages will be kept indefinitely, 0
means no messages will be kept, and any other integer value will be the number of seconds to keep messages. The default is None
.
RELAY_HEALTHCHECK_METHOD
¶
Component |
Configurable |
---|---|
Relay Service |
Yes ✅ |
Django App |
No 🚫 |
The HTTP method to use for the healthcheck endpoint. RELAY_HEALTHCHECK_URL
must also be set for this to have any effect. The default is "GET"
.
RELAY_HEALTHCHECK_STATUS_CODE
¶
Component |
Configurable |
---|---|
Relay Service |
Yes ✅ |
Django App |
No 🚫 |
The expected HTTP status code for the healthcheck endpoint. RELAY_HEALTHCHECK_URL
must also be set for this to have any effect. The default is 200
.
RELAY_HEALTHCHECK_TIMEOUT
¶
Component |
Configurable |
---|---|
Relay Service |
Yes ✅ |
Django App |
No 🚫 |
The timeout in seconds for the healthcheck endpoint. RELAY_HEALTHCHECK_URL
must also be set for this to have any effect. The default is 5.0
seconds.
RELAY_HEALTHCHECK_URL
¶
Component |
Configurable |
---|---|
Relay Service |
Yes ✅ |
Django App |
No 🚫 |
The URL to ping after a loop of sending emails is complete. This can be used to integrate with a service like Healthchecks.io or UptimeRobot. The default is None
, which means no healthcheck will be performed.