Enhanced email classes for Django
Project description
django-enhanced-emails 💌
🔋 Batteries-included emails for Django.
- Powerful templating engine
- Multipart emails by default (HTML + text)
- Web version rendering (with admin)
- Easy file attachment
- and more ...
Getting started
Simple setup
-
Install the package:
pipenv install django-enhanced-emails
-
Create a new email class:
# myapp/emails.py from enhanced_emails import EnhancedEmail class WelcomeEmail(EnhancedEmail): subject = "Welcome to our site!" html_template = "emails/welcome.html"
<!-- myapp/templates/emails/welcome.html --> <strong>Welcome to our site {{first_name}}!</strong><br /> Best, The OurSite team
-
Instanciate an email and send it:
email = WelcomeEmail( to=[user.email], context={ "first_name": user.first_name } ) email.send()
-
✨ All done! Our user received something like:
Content-Type: multipart/alternative; boundary="===============7747654958126582044==" MIME-Version: 1.0 Subject: hello From: hello@oursite.com To: user@gmail.com Date: Wed, 11 Apr 2018 17:13:02 -0000 Message-ID: <152346678269.275.17989388690220812241@cf7f5f3375c9> --===============7747654958126582044== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Welcome to our site Elon! Best, The OurSite team --===============7747654958126582044== Content-Type: text/html; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit <strong>Welcome to our site Elon!</strong> Best, The OurSite team --===============7747654958126582044==--
Advanced setup (for web version rendering)
-
Add the
enhanced_emails
app toINSTALLED_APPS
:# settings.py INSTALLED_APPS = [ ... "enhanced_emails", ... ]
-
Add a new entry to
urlpatterns
:# urls.py urlpatterns = [ path("admin/", admin.site.urls), path("emails/", include("enhanced_emails.urls")), ... ]
-
Use
WebVersionEnhancedEmail
instead ofEnhancedEmail
:from enhanced_emails import WebVersionEnhancedEmail class WelcomeEmail(WebVersionEnhancedEmail): subject = "Welcome to our site!" html_template = "emails/welcome.html"
-
Use the
web_url
variable in the email template:<!-- myapp/templates/emails/welcome.html --> <strong>Welcome to our site {{ first_name }}!</strong><br /> Best, The OurSite team<br /> <a href="{{ web_url }}">View in browser</a>
-
Instanciate an email and send it (notice that we need to pass the request as well now):
email = WelcomeEmail( to=[user.email], context={ 'first_name': user.first_name }, request=request ) email.send()
-
The email is visible in the admin and on the site! ✨
Development
- Deploy:
python setup.py sdist && twine upload dist/*
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
Close
Hashes for django-enhanced-emails-0.0.7.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b41d2d15973ec445a3c42d81b54c3328d594450883c107eb9cba9987655e191a |
|
MD5 | 75b296d2e25c4caa81ad837367a0305d |
|
BLAKE2b-256 | 4b648bbcf34262c26c0cab0d7cb845647f14e8b33543d72b7b9d563d65887b21 |