MJML的Python实现一个使响应电子邮件变得简单的框架

mjml的Python项目详细描述


mjml存根

这是一个非官方的Python端口mjml-一种由Mailjet创建的标记语言,旨在减少编写响应电子邮件的痛苦。在

警告:仅限存根实现!在

这个库只实现了原始MJML项目的一个子集。它缺少JavaScript mjml实现中的几个特性(例如缩小、美化和验证)。此外,代码可能还包含许多其他错误。在

好的一面是,当您改进代码时,有很多可能性可以让您真正发挥作用:-)

目标/动机

这个库应该密切跟踪JS version of mjml,所以理想情况下你应该得到相同的HTML。然而,即使在最好的情况下,这个库也总是会滞后一点,因为每次更改都必须手动转换为Python(一个主要是机械的过程)。在

虽然我喜欢mjml背后的想法和所有关于各种电子邮件客户端可以接受的HTML呈现的知识,但我们并不想部署一个节点.js-基于我们生产服务器的堆栈。我们对检查由npm install mjml安装的所有220个JS包感到不舒服(只要有新版本就重新检查)。另外,由于数据隐私问题,我们无法使用任何第三方产品(即MJML的API产品)。在

在对Python实现的可行性进行了短暂的检查之后,我继续编写了足够的代码,以确保一些现有的消息可以转换为mjml。目前,该库部署在一些轻生产场景中。在

使用Python的另一个好处是我们可以更紧密地将其集成到我们的web应用程序中。而且,CPython的启动开销比节点.js因此,我们还可以通过CLI应用程序生成一些邮件,而不会出现严重的性能问题。CPython使用~70ms将一个普通的mjml模板转换为HTML节点.JS需要~650ms

文件

其思想是实现与JS实现完全相同的mjml XML方言,因此最终您应该能够使用official docs和{a5}上的其他在线资源。但是我们现在离这还差得远呢!当前的代码可以呈现“helloworld”示例以及图像、表和组,但是许多组件仍有待于重新实现。我很乐意看到你的请求来改善目前的状态。在

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

推荐PyPI第三方库


热门话题
在Spring Boot中启动应用程序上下文时发生java错误   JAVA网未知后异常Jsoup   java通过[i][2]元素对2D数组进行排序   java如何在Spring安全性中正确使用hasRole?   java getMaxInactiveInterval返回的值与应用程序中配置的值不同。属性   使用数组在java中创建表   java如何从outboundgateway向发送方抛出异常   javajavax。jms。JMSSecurityException:用户名[null]或密码无效   java为什么我们需要在tomcat日志中编写两次处理程序。财产?   java无法在Java6上使用SevenZFile解压7z文件   用Java实现排队   java检测用户是否绘制了整个屏幕   java包的最终变量可以通过反射进行更改吗?   java在JavaFX8中有没有控制菜单弹出位置的方法?   java对整数数组进行排序,而不影响由表示的特殊字符的索引$   IntelliJ IDEA与NetBeans对java性能的影响?   java如何解决登录/注册问题facebook E/BufferQueueProducer:[FacebookActivity[5278]#0]断开连接:未连接(请求=1)