Skip to main content

Django Multi Mail Backend

Project description

Django Multi Mail Backend

If you use or like the project, click Star and Watch to generate metrics and i evaluate project continuity.

Install:

pip install django-multi-mail-backend

Configuration

  1. Usage with multi backend

    1. In your settings.py:

      EMAIL_BACKEND = 'django_multi_mail_backend.backend.MultiServerBackend'
      
    2. set settings servers backend, in settings.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',
          }
      }
      
  2. Multi SMTP Server:

    1. In your settings.py:

      EMAIL_BACKEND = 'django_multi_mail_backend.backend.MultiSMTPBackend'
      
    2. set settings for MultiSMTPBackend in settings.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
          }
      }
      
  3. Multi SES Server:

    1. In your settings.py:

      EMAIL_BACKEND = 'django_multi_mail_backend.backend.MultiSESBackend'
      
    2. set settings for MultiSESBackend in settings.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
          }
      }
      

Usage

Don't use default django methods direct, because this method not accept custom parameters, instead use the options below

  1. With send_mail

        from django_multi_mail_backend import send_mail, send_mass_mail
        ...
    
        send_mail(..., use_use_backend='smtp')
        send_mass_mail(..., use_backend='ses')
    

    or

        from 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)
    
  2. With EmailMessage

    from django_multi_mail_backend import EmailMessage, EmailMultiAlternatives
    ...
    
    EmailMessage(..., use_backend='smtp2').send()
    EmailMultiAlternatives(..., use_backend='original_smtp').send()
    

    or

    from django.core.mail import EmailMessage, EmailMultiAlternatives, get_connection
    ...
    
    with get_connection(use_backend='smtp') as connection:
        EmailMessage(..., connection=connection).send()
        EmailMultiAlternatives(..., connection=connection).send()
    
  3. With send_messages

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

    or

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-multi-mail-backend-1.0.1.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file django-multi-mail-backend-1.0.1.tar.gz.

File metadata

File hashes

Hashes for django-multi-mail-backend-1.0.1.tar.gz
Algorithm Hash digest
SHA256 2ca6ee6594eb79e2956003ca1537ddfc147c0165560bca9238dd4b816d06b436
MD5 6202965d7b01e453f6dcd88e32ea6863
BLAKE2b-256 15bd102ee05c2ca8edd0ad2a5a88108ad25b8b5ba010c1fe529f779031dca876

See more details on using hashes here.

File details

Details for the file django_multi_mail_backend-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for django_multi_mail_backend-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 322832aebae84c71ad982b4361e4b805394fc7eeb467cd742418390a591e68b0
MD5 ef40d387a41fe94e32de5bb894a92b91
BLAKE2b-256 b5417cc5c0b0e3d82ae84e54675bed70255151bd481c757ed197962c48a981af

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page