筛选过滤语言(RFC 5228)Python3版本的分析器/计算器

sifter3的Python项目详细描述


Sifter3-筛选电子邮件过滤器(RFC 5228)

Sifter3是Sieve电子邮件过滤语言(rfc5228)的python3实现

Python packageDocumentation StatusCodeFactorGithub versionPyPI versionSupported Python versionsPyPI downloadsGitHub

特点

  • 支持RFC 5228中的所有基筛规格,除了 功能仍然列在下面的待办事项下
    • 多行字符串(自0.2.2版起)
    • 括号内的注释(自0.2.4版起)
  • 支持的扩展:
    • 正则表达式(draft-ietf-sieve-regex-01)
    • 阀体(RFC 5173)
    • 变量(RFC 5229)
    • enotify(RFC 5435,尤其是邮寄方式RFC 5436)
    • removeflag,不支持的标志:removeflag:
    • 拒绝和重新提交(RFC 5429)
    • ihave(RFC 5463)

安装

pip install sifter3

示例

^{pr2}$

在上面的示例中,msg_actions是应用于 电子邮件。每个操作都是一个元组,由操作名和 特定于操作的参数。由调用者来操纵 基于返回的操作的消息和消息存储。在

命令行

命令行工具的输出可以解析为json。在

$ sifter tests/evaluation_1.rules tests/evaluation_1.msg
[['redirect', 'acm@example.com']]

警告

  • 目前还没有考虑对恶意用户进行强化 输入。当前的实现是针对正在运行的用户 他们自己的筛选脚本。在
  • 但是,当前的实现没有针对性能进行优化 希望对正常输入来说不会太慢。在

托多

  • 使用sieve for提供Unix LDA行为的示例适配器 过滤
  • 基本规范功能尚未实现:
    • 编码字符(第2.4.2.4节)
    • 消息唯一性(第2.10.3节)
    • 包络试验(第5.4节)
    • 处理消息循环(第10节)
    • 限制滥用重定向操作(第10节)
    • 地址测试应将允许的标头限制为包含 地址(第5.1节)
  • 确保字符集是根据规范实际处理的
  • 使字符串解析符合第8.1节中的语法和 第2.4.2节所述特征
  • 检查python的email.message是否实现了头比较 和筛子规格一样
  • 确保正则表达式实际上是根据 扩展规范
  • 添加对各种扩展的支持:
    • 外部存储列表(melnikov筛外部列表草案)
    • 关系型(RFC 5231)
    • 子地址(RFC 5233)
    • 副本(RFC 3894)
    • 环境(RFC 5183)
    • 日期和索引(RFC 5260)
    • 编辑标题(RFC 5293)
    • 邮箱元数据(RFC 5490)
    • xmpp通知(RFC 5437)

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

推荐PyPI第三方库


热门话题
java如何将jaxb插件扩展与gradlejaxbplugin一起使用   java Hibernate列表<Object[]>到特定对象   java使用多态性显示arraylist的输出   java水平堆叠卡,带有一定偏移量   java错误:找不到符号方法liesInt()   java客户机/服务器文件收发中的多线程流管理   在java中可以基于访问重载方法吗?   包含空元素的java排序数组   swing Java按钮/网格布局   java BottomNavigationView getmaxitemcount   java空指针异常字符串生成器   java Xamarin升级导致“类文件版本错误52.0,应为50.0”错误   java我正在尝试打印它,而不只是对每一行进行println   Tomcat7中的java是否需要复制上下文。将xml转换为conf/Catalina/locahost以使其生效   带有注入服务的java REST端点在何处引发自定义WebServiceException?   在Java中使用GPS数据   java如何将JFreeChart ChartPanel导出到包含添加的CrosshairOverlay的图像对象?   内置Eclipse期间的Java 8堆栈溢出   java在GWT编译的JavaScript中如何表示BigDecimal