像django通知,但只是发送普通电子邮件。写这些是因为把其他的应用程序转换成一封html邮件很烦人

templated-emails的Python项目详细描述


这个应用程序抽象了电子邮件的发送方式,这样就可以 从纯文本电子邮件切换到html电子邮件,即使您使用的是第三方应用程序。 它通过使用与django通知非常相似的机制来实现这一点。

每封电子邮件都有一个文件夹。在此文件夹中可以放置:

  • short.txt(针对主题)
  • email.txt(用于纯文本电子邮件)
  • email.html(可选,如果还应发送html电子邮件)

一个好的做法是把所有的邮件都放在模板文件夹中的邮件/文件夹中, 因此,很容易看到你的系统正在发送哪些电子邮件

收件人可以是电子邮件数组(作为字符串)或用户。 如果您传递给用户,它还将尝试查找用户存储的语言 (accounts.account.language用pinax表示)并用它发送。

发送电子邮件的工作方式如下:

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"})

系统将添加当前站点(django项目的站点对象) 和静态URL(用于链接静态内容)到模板的上下文。

语言

与django通知类似,系统将尝试查找 用户已在其帐户中设置(但可以使用设置将其配置为其他型号。通知语言模块) 为每个用户提供正确的语言。

内联CSS规则

内联css规则是烦人和乏味的,但如果你想支持所有电子邮件客户端,这是必要的。 因为包含了0.3 pynliner,它将从头部获取css并将其放入与规则匹配的每个元素中

您可以在settings.py中设置一个开关来打开或关闭此功能: TEMPLATEDEMAILS_USE_PYNLINER=False是默认值

芹菜

在内联CSS时,Pynliner可能非常慢你可以移动所有的死刑 使用此设置的芹菜(默认为false):

TEMPLATEDEMAILS_USE_CELERY = True

请注意,给定的上下文未经更改就传递给芹菜

安装

pip install -e http://github.com/philippWassibauer/templated-emails.git#egg=templated-emails

pip install templated-emails

依赖关系

  • 品林
  • cssutils

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何通过jamod读取控制器的输入状态?   java Back bean方法在使用两个h的单一表单时未调用:selectonemenus和command button   mockitojava中的单元测试Mock继承方法   java在不传递到构造函数的情况下,将一个类的实例使用到另一个类中的最佳方法是什么   java Spring MVC:如何通过API在Dozer的toplevel字段中允许空值?   java hibernate到MSSQL服务器的连接被拒绝:连接   java动态调用现有变量   在java中扩展多个类的泛型   java使用JNA Ptrace获取linux中外部进程的信息?   eclipse获取Java项目中所有构建错误的最快方法是什么?   java将动态数组拆分为多个数组   java安卓:将json保存到sqlite   java获取最近时间Android   java如何为多对多关联编写HQL查询?   java Docker compose for mysql和spring应用程序拒绝访问   java查找数组(如果它是另一个数组的子集)   java如何在另一个具有相同数据类型参数的泛型类(或接口)中使用泛型类(或接口),而无需强制转换   Apache POI java。lang.NoClassDefFoundError:org/apache/commons/compress/utils/InputStreamStatistics   java使用Jackson将JSON反序列化为异构元素列表   使用MapReduce实现java规范化