类似于django-notifications,但仅用于发送纯文本电子邮件。由于仅仅为了将电子邮件转换为HTML电子邮件就fork其他应用而感到烦恼,因此编写了它。
项目描述
此应用程序以抽象方式发送电子邮件,以便您可以在使用第三方应用时从纯文本电子邮件切换到HTML电子邮件。它是通过使用类似于django-notifications的机制来实现的。
每个电子邮件都有一个文件夹。在这个文件夹中,可以放置以下内容:
short.txt(用于主题)
email.txt(用于纯文本电子邮件)
email.html(可选,如果需要发送HTML电子邮件)
一个良好的实践是将所有电子邮件放在模板文件夹中的emails/文件夹内,这样就可以轻松地查看系统正在发送哪些电子邮件。
收件人可以是电子邮件(作为字符串)的数组或用户。如果您传递用户,它还将尝试查找用户存储的语言(pinax中的accounts.Account.language)并使用它发送。
发送电子邮件的工作方式如下
from templated_emails.utils import send_templated_email send_templated_email(["philipp@gidsy.com"], "emails/invite_friends", {"my_variable":"blafoo"})
或
user = User.objects.get(pk=1) # this will try to switch to the correct language of the user send_templated_email([user], "emails/invite_friends", {"my_variable":"blafoo"})
系统将添加当前_site(Django项目的Site对象)和STATIC_URL(用于链接静态内容)到模板的上下文中。
语言
类似于django-notification,系统将尝试查找用户在其帐户中设置的语言(但可以通过settings.NOTIFICATION_LANGUAGE_MODULE配置为其他模型)以向每个用户提供正确的语言。
内联CSS规则
内联CSS规则很烦人且繁琐,但如果你想要支持所有电子邮件客户端,这是必需的。从0.3版本开始,pynliner被包括在内,它将CSS从HEAD中取出并放入匹配规则的所有元素中
您可以在settings.py中设置一个切换来打开或关闭此功能:TEMPLATEDEMAILS_USE_PYNLINER = False是默认值。
Celery
当Pynliner内联CSS时可能会相当慢。您可以通过此设置将所有执行移动到Celery(默认为False)。
TEMPLATEDEMAILS_USE_CELERY = True
请注意,给定的上下文将不修改地传递给Celery。
安装
pip install -e http://github.com/philippWassibauer/templated-emails.git#egg=templated-emails
或
pip install templated-emails
依赖项
pynliner
cssutils
关注我
项目详情
templated-emails-0.6.9.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a061a6a3008583ea7c2dbded11ae1801a97cae314aa6dc0f1c1cfd568f77764c |
|
MD5 | 1b7070f615add2f836e0d0e10424fc71 |
|
BLAKE2b-256 | b3eaf563fee5b11c88bebe9e2a8248be838f82edd59c2d7f7b57752f3d8aa835 |