Django dynamic SMTP
Configure email configuration in the admin.
Usage
INSTALLED_APPS = [
...,
"django_object_actions",
"tinymce",
"dynamic_smtp",
]
- Configure your email backend:
EMAIL_BACKEND = (
"django.core.mail.backends.console.EmailBackend"
if DEBUG
else "dynamic_smtp.email.DynamicSMPTEmailBackend"
)
- Migrate:
./manage.py migrate
- Configure
tinymce
. Example:
TINYMCE_JS_URL = "https://cdnjs.cloudflare.com/ajax/libs/tinymce/7.0.1/tinymce.min.js"
TINYMCE_DEFAULT_CONFIG = {
"theme": "silver",
"height": 600,
"width": 700,
"resize": "both",
"plugins": "advlist,autolink,lists,link,image,charmap,print,preview,anchor,"
"searchreplace,visualblocks,code,fullscreen,insertdatetime,media,table,paste,"
"help,wordcount",
"license_key": "gpl",
}
See django-tinymce's documentation
for more options.
- Access you admin and configure your SMTP settings
Customize model model admin
- Don't let our app register the default model admin, and register your
new model as the holder of email configurations.
...
DYNAMIC_SMPT_REGISTER_ADMIN = False
DYNAMIC_SMPT_EMAIL_CONFIGURATION_MODEL = "myapp.EmailConfiguration"
from dynamic_smtp.models import AbstractEmailConfiguration
class EmailConfiguration(AbstractEmailConfiguration):
pass
- Create your custom model admin
from django.contrib import admin
from dynamic_smtp.models import AbstractEmailConfiguration
from .models import Emailconfiguration
@admin.register(EmailConfiguration)
class CustomModelAdmin(EmailConfigurationAdmin):
class Media:
css = {"all": ["myapp/style.css"]}
Dependencies
This package needs quite a few dependencies, considering its simplicity.
Django
beautifulsoup4
and lxml
: prepare text version of HTML emails
django-object-actions
: Button for email test
django-tinymce
: HTML editing for signature
django-solo
: Use singleton model
Contributing
All contributions are welcome! To setup you environment:
pip install -r dev.requirements.txt
pre-commit install