import importlib def _declare_backend(backend_path): backend_path = backend_path.split(".") backend_module_name = ".".join(backend_path[:-1]) class_name = backend_path[-1] def backend(*args, headers={}, from_address=None, **kwargs): def _backend(): backend_module = importlib.import_module(backend_module_name) backend = getattr(backend_module, class_name) return backend(*args, **kwargs) if from_address is None: raise ValueError("missing from_address") _backend.from_address = from_address _backend.headers = headers return _backend return backend smtp_backend = _declare_backend("django.core.mail.backends.smtp.EmailBackend") console_backend = _declare_backend("django.core.mail.backends.console.EmailBackend") locmem_backend = _declare_backend("django.core.mail.backends.locmem.EmailBackend")