Package: django-multi-mail-backend
Django Multi Mail BackendIf you use or like the project, clickStarandWatchto generate metrics and i evaluate project continuity.Install:pip install django-multi-mail-backendConfigurationUsage with multi backendIn yoursettings.py:EMAIL_BACKEND = 'django_multi_mail_backend.backend.MultiServerBackend'set settings servers backend, insettings.py, ex:EMAIL_BACKENDS = {
    'smtp': {
        'BACKEND': 'django_multi_mail_backend.backend.MultiSMTPBackend',
        # settings for MultiSMTPBackend
    },
    'smtp2': {
        'BACKEND': 'django_multi_mail_backend.backend.MultiSMTPBackend',
        # settings for MultiSMTPBackend
    },
    'ses': {
        'BACKEND': 'django_multi_mail_backend.backend.MultiSESBackend',
        # settings for MultiSESBackend
    },
    'original_smtp': {
        'BACKEND': 'django.core.mail.backends.smtp.EmailBackend',
        # this use original django smtp class and configurations
    },
    'console': {
        'BACKEND': 'django.core.mail.backends.console.EmailBackend',
    }
}Multi SMTP Server:In yoursettings.py:EMAIL_BACKEND = 'django_multi_mail_backend.backend.MultiSMTPBackend'set settings for MultiSMTPBackend insettings.py:# MultiSMTPBackend use django `django.core.mail.backends.smtp.EmailBackend` in the background
EMAIL_BACKENDS = {
    'default': {
        # see all configuration here: https://docs.djangoproject.com/en/4.1/topics/email/#smtp-backend
        'HOST': 'mailhog',
        'PORT': 1025,
        'HOST_USER': None,
        'HOST_PASS': None,
        'USE_TLS': None,
        'USE_SSL': None,
        'TIMEOUT': None,
        'SSL_KEYFILE': None,
        'SSL_CERTFILE': None,
        'DEFAULT_FROM_EMAIL': "test@teste.com",
    },
    'example1': {
        # copy above settings
    }
}Multi SES Server:In yoursettings.py:EMAIL_BACKEND = 'django_multi_mail_backend.backend.MultiSESBackend'set settings for MultiSESBackend insettings.py:# MultiSESBackend use django `django_ses.SESBackend` in the background
# see all configuration here: https://github.com/django-ses/django-ses
# removed `AWS_` in front of the keys
EMAIL_BACKENDS = {
    'default': {
        'ACCESS_KEY': 'mailhog',
        'SECRET_KEY': 1025,
        'SESSION_TOKEN': None,
        'SES_REGION_NAME': None,
        'SES_REGION_ENDPOINT_URL': None,
        'SES_AUTO_THROTTLE': None,
        'SES_CONFIG': None,
        'DKIM_DOMAIN': None,
        'DKIM_PRIVATE_KEY': None,
        'DKIM_SELECTOR': None,
        'DKIM_HEADERS': None,
        'SES_SOURCE_ARN': None,
        'SES_FROM_ARN': None,
        'SES_RETURN_PATH_ARN': None,
    },
    'example1': {
        # copy above settings
    }
}UsageDon't use default django methods direct, because this method not accept custom parameters,
instead use the options belowWith send_mailfrom django_multi_mail_backend import send_mail, send_mass_mail
    ...

    send_mail(..., use_use_backend='smtp')
    send_mass_mail(..., use_backend='ses')orfrom django.core.mail import send_mail, send_mass_mail, get_connection
    ...

    with get_connection(use_backend='console') as connection:
        send_mail(..., connection=connection)
        send_mass_mail(..., connection=connection)With EmailMessagefrom django_multi_mail_backend import EmailMessage, EmailMultiAlternatives
...

EmailMessage(..., use_backend='smtp2').send()
EmailMultiAlternatives(..., use_backend='original_smtp').send()orfrom django.core.mail import EmailMessage, EmailMultiAlternatives, get_connection
...

with get_connection(use_backend='smtp') as connection:
    EmailMessage(..., connection=connection).send()
    EmailMultiAlternatives(..., connection=connection).send()With send_messagesfrom django_multi_mail_backend import EmailMessage, EmailMultiAlternatives, get_connection
...

with get_connection(use_backend='smtp') as connection:
    connection.send_messages([EmailMessage(...), EmailMultiAlternatives(...)])orfrom django.core.mail import EmailMessage, EmailMultiAlternatives, get_connection
...

with get_connection(use_backend='smtp') as connection:
    connection.send_messages([EmailMessage(...), EmailMultiAlternatives(...)])