为django构建的简单且可定制的电子邮件模板
django-simple-mail的Python项目详细描述
Django简单邮件
为django构建的简单可定制的电子邮件模板
变更日志
- 2.2.6禁用电子邮件主题的自动转义
- 2.2.5从的send_mass_mail方法中删除未使用的参数 BaseSimpleMail
- 2.2.4将send_mass_mail方法添加到BaseSimpleMail
- 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.*有不同的变化,而不是 向后兼容。
要求
此django应用程序与以下组件一起工作:
- Python(>;=2.7)
- django(>;=1.9)(需要对以前的版本进行测试)
待办事项
- 编写测试
- 验证与以前版本的django和python的兼容性
- 在pythonanywhere上设置演示应用程序
安装
使用pip:
安装pip install django_simple_mail
将simple_mail添加到已安装的应用程序设置中。
INSTALLED_APPS=(...'simple_mail',...)
然后运行:
python manage.py migrate
引用Django的文档:
Mail is sent using the SMTP host and port specified in the ^{tt12}$ and ^{tt13}$ settings. The ^{tt14}$ and ^{tt15}$ settings, if set, are used to authenticate to the SMTP server, and the ^{tt16}$ and ^{tt17}$ settings control whether a secure connection is used.
所以您需要设置以下内容
EMAIL_HOST = '' EMAIL_PORT = 587 EMAIL_HOST_USER = '' EMAIL_HOST_PASSWORD = '' EMAIL_USE_TLS = True EMAIL_USE_SSL = False
集成
ck内容的所见即所得版本的编辑器
简单邮件与django-ckeditor轻松集成,实现所见即所得 内容的版本。使用它:
pip install django-ckeditor
然后将ckeditor添加到已安装的应用程序设置中。
INSTALLED_APPS=(...'ckeditor',...)
并在您的设置中设置以下内容:
SIMPLE_MAIL_USE_CKEDITOR = True
翻译电子邮件的模型翻译
简单邮件很容易与django-modeltranslation集成以获取 您的电子邮件内容有多种语言。
pip install django-modeltranslation
然后将modeltranslation添加到已安装的应用程序设置中。
INSTALLED_APPS=(...'modeltranslation',...)
并在您的设置中设置以下内容:
SIMPLE_MAIL_USE_MODELTRANSALTION = True
然后运行:
python manage.py sync_translation_fields
创建、注册和发送邮件
注册邮件
在应用程序中创建一个mails.py文件并定义您的邮件。
email_key属性不能超过100个字符。
fromsimple_mail.mailerimportBaseSimpleMail,simple_mailerclassWelcomeMail(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属性将变量传递给电子邮件:
fromsimple_mail.mailerimportBaseSimpleMail,simple_mailerclassWelcomeMail(BaseSimpleMail):email_key='welcome'context={'title':'My email title','user':'the user'}simple_mailer.register(WelcomeMail)
或者您可以创建一个set_context方法:
fromsimple_mail.mailerimportBaseSimpleMail,simple_mailerclassWelcomeMail(BaseSimpleMail):email_key='welcome'defset_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方法。
此方法不应采用任何参数:
fromsimple_mail.mailerimportBaseSimpleMail,simple_mailerclassWelcomeMail(BaseSimpleMail):email_key='welcome'defset_context(self,user_id,welcome_link):user=User.objects.get(id=user_id)self.context={'user':user,'welcome_link':welcome_link}defset_test_context(self):user_id=User.objects.order_by('?').first().idself.set_context(user_id,'http://my-webiste.com/my-path')simple_mailer.register(WelcomeMail)
此方法影响context中显示的字段 管理员。
设置
以下是您可以使用的所有设置,默认值为:
# 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
邮件配置和版本
自定义基本内容和模板颜色
直接从django更改外观或模板 管理员:页脚字段可以使用模板标记和变量。
管理邮件配置
编辑每个邮件的内容:
您可以编辑每个邮件的内容。内容, subject,button label和button link字段可以使用 模板标记和变量。
管理邮件版本
自定义模板
您可以定义自己的电子邮件模板:
通过设置template属性 BaseSimpleMail子类:
fromsimple_mail.mailerimportBaseSimpleMail,simple_mailerclassWelcomeMail(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'
支持
如果您有问题,请让我们知道或提交拉取请求。
许可证
这个项目是根据麻省理工学院的许可证授权的。