delivery.py 913 B

123456789101112131415161718192021222324252627
  1. import importlib
  2. def _declare_backend(backend_path):
  3. backend_path = backend_path.split(".")
  4. backend_module_name = ".".join(backend_path[:-1])
  5. class_name = backend_path[-1]
  6. def backend(*args, headers={}, from_address=None, **kwargs):
  7. def _backend():
  8. backend_module = importlib.import_module(backend_module_name)
  9. backend = getattr(backend_module, class_name)
  10. return backend(*args, **kwargs)
  11. if from_address is None:
  12. raise ValueError("missing from_address")
  13. _backend.from_address = from_address
  14. _backend.headers = headers
  15. return _backend
  16. return backend
  17. smtp_backend = _declare_backend("django.core.mail.backends.smtp.EmailBackend")
  18. console_backend = _declare_backend("django.core.mail.backends.console.EmailBackend")
  19. locmem_backend = _declare_backend("django.core.mail.backends.locmem.EmailBackend")