为Django构建的简单且可定制的电子邮件模板
项目描述
django-simple-mail
为Django构建的简单可定制电子邮件模板
变更日志
2.3.5 修复django 4中的ugettext_lazy弃用问题
2.3.4 为SIMPLE_MAIL_FILE_STORAGE设置添加默认值
2.3.3 为ImageSpecField添加存储设置
2.3.2 添加SIMPLE_MAIL_FILE_STORAGE设置
2.3.1 修复six导入问题
2.3.0 停止Python 2支持并添加Django 3.0兼容性
2.2.6 禁用电子邮件主题的自动转义
2.2.5 从BaseSimpleMail的send_mass_mail方法中删除未使用的参数
2.2.4 向BaseSimpleMail添加send_mass_mail方法
2.2.3 从管理中删除操作(我们没有删除权限)
2.2.2 添加Django 1.9和Python 2兼容性
2.2.1 从日志中删除cssutils警告
在2.2.*版本中,以下字段已被删除:from_email、from_name 和 base_url。这些参数应在代码中定义,而不是从管理员界面定义。
2.*版本与1.*版本有重大变更,不向后兼容。
模板预览
基本模板是用Mailchimp编辑器构建的。
邮件预览
要求
此Django应用与
Python (>=2.7)
Django (>=1.9)(需要测试旧版本)
待办事项
编写测试
验证与Django和Python旧版本的兼容性
在pythonanywhere上设置演示应用
安装
使用pip安装
pip install django_simple_mail
将simple_mail添加到您的INSTALLED_APPS设置中。
INSTALLED_APPS = (
...
'simple_mail',
...
)
然后运行
python manage.py migrate
引用Django的文档
邮件通过SMTP主机和端口发送,这些设置在EMAIL_HOST和EMAIL_PORT中指定。如果设置了EMAIL_HOST_USER和EMAIL_HOST_PASSWORD设置,则用于通过SMTP服务器进行身份验证,而EMAIL_USE_TLS和EMAIL_USE_SSL设置控制是否使用安全连接。
因此,您需要设置以下内容
EMAIL_HOST = '' EMAIL_PORT = 587 EMAIL_HOST_USER = '' EMAIL_HOST_PASSWORD = '' EMAIL_USE_TLS = True EMAIL_USE_SSL = False
集成
CKEDITOR用于内容的WYSIWYG编辑
Simple Mail可以轻松与django-ckeditor集成,以获得内容的WYSIWYG编辑。要使用它
pip install django-ckeditor
然后在您的INSTALLED_APPS设置中添加ckeditor。
INSTALLED_APPS = (
...
'ckeditor',
...
)
并在您的设置中设置以下内容
SIMPLE_MAIL_USE_CKEDITOR = True
ModelTranslation用于翻译邮件
Simple Mail可以轻松与django-modeltranslation集成,以使您的邮件内容可在多种语言中使用。
pip install django-modeltranslation
然后在您的INSTALLED_APPS设置中添加modeltranslation。
INSTALLED_APPS = (
...
'modeltranslation',
...
)
并在您的设置中设置以下内容
SIMPLE_MAIL_USE_MODELTRANSALTION = True
然后运行
python manage.py sync_translation_fields
创建、注册和发送邮件
注册邮件
在您的应用中创建一个mails.py文件并定义您的邮件。
email_key属性不得超过100个字符。
from simple_mail.mailer import BaseSimpleMail, simple_mailer
class WelcomeMail(BaseSimpleMail):
email_key = 'welcome'
simple_mailer.register(WelcomeMail)
然后运行./manage.py register_mails将这些邮件创建到数据库中。
具有密钥welcome的邮件将在您的Django管理员中可供编辑。
发送一封邮件
您可以使用以下方式发送WelcomeMail:
welcome_mail = WelcomeMail()
welcome_mail.send(to, from_email=None, bcc=[], connection=None, attachments=[],
headers={}, cc=[], reply_to=[], fail_silently=False)
向邮件传递变量
您可以使用context属性向邮件传递变量
from simple_mail.mailer import BaseSimpleMail, simple_mailer
class WelcomeMail(BaseSimpleMail):
email_key = 'welcome'
context = {
'title' : 'My email title',
'user': 'the user'
}
simple_mailer.register(WelcomeMail)
或者您可以创建一个set_context方法
from simple_mail.mailer import BaseSimpleMail, simple_mailer
class WelcomeMail(BaseSimpleMail):
email_key = 'welcome'
def set_context(self, user_id, welcome_link):
user = User.objects.get(id=user_id)
self.context = {
'user': user,
'welcome_link': welcome_link
}
simple_mailer.register(WelcomeMail)
在发送邮件之前,您需要调用set_context
welcome_mail = WelcomeMail()
welcome_mail.set_context(user_id, welcome_link)
welcome_mail.send(to, from_email=None, bcc=[], connection=None, attachments=[],
headers={}, cc=[], reply_to=[], fail_silently=False)
邮件预览和测试邮件
从管理员界面,您可以预览邮件并发送测试邮件。
两种方法都使用您的context属性来渲染邮件。
如果您使用set_context方法,您可能需要创建一个set_test_context方法。
此方法不应接受任何参数
from simple_mail.mailer import BaseSimpleMail, simple_mailer
class WelcomeMail(BaseSimpleMail):
email_key = 'welcome'
def set_context(self, user_id, welcome_link):
user = User.objects.get(id=user_id)
self.context = {
'user': user,
'welcome_link': welcome_link
}
def set_test_context(self):
user_id = User.objects.order_by('?').first().id
self.set_context(user_id, 'http://my-webiste.com/my-path')
simple_mailer.register(WelcomeMail)
此方法影响管理员界面“上下文”部分显示的字段。
设置
以下是您可以使用的所有设置及其默认值
# enable django-modeltranslation integration SIMPLE_MAIL_USE_MODELTRANSALTION = False # enable django-ckeditor integration SIMPLE_MAIL_USE_CKEDITOR = False # set default email template SIMPLE_MAIL_DEFAULT_TEMPLATE = 'simple_mail/default.html' # enable/disable cssutils warning logs SIMPLE_MAIL_LOG_CSS_WARNING = False # storage for logo and banner SIMPLE_MAIL_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
邮件配置与编辑
自定义基本内容和模板颜色
您可以直接从Django管理界面更改模板的外观和感觉:页脚字段可以使用模板标签和变量。
管理邮件配置
编辑每封邮件的内容
您可以编辑每封邮件的内容。内容、主题、按钮标签和按钮链接字段可以使用模板标签和变量。
管理邮件编辑
自定义模板
您可以定义自己的电子邮件模板
通过从您的BaseSimpleMail子类设置模板属性
from simple_mail.mailer import BaseSimpleMail, simple_mailer
class WelcomeMail(BaseSimpleMail):
email_key = 'welcome'
template = 'my_app/my_email_template.html'
simple_mailer.register(WelcomeMail)
或在您的设置中设置SIMPLE_MAIL_DEFAULT_TEMPLATE
SIMPLE_MAIL_DEFAULT_TEMPLATE = 'my_app/my_email_template.html'
支持
如果您遇到问题,请告知我们或提交一个拉取请求。
许可证
该项目采用MIT许可证。
项目详情
django_simple_mail-2.3.5.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 8f2840be7039bf91f272873d25b7b64e975428613a802ae3bfeb7bd89c7e78c8 |
|
MD5 | 57a3c8744d368abd06f893ebd5f28794 |
|
BLAKE2b-256 | 433d72beccb027692ac912059848661d955aca6b045b9a44a916f62692d58e5e |
django_simple_mail-2.3.5-py2.py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 3423f08289138f883f1200047a3c2322f2182d9b172b59b6ddbd2e57ebdb2039 |
|
MD5 | 5236e5c97cbcbc2d742c2df56cc35609 |
|
BLAKE2b-256 | 3548772a8a4d2c4247599bcc2e54220fc52f14f737b4bcffce0f6857d5d79400 |