跳转到主要内容

将stdlib email compat32策略更改为默认使用CRLF换行符。

项目描述

为兼容32位电子邮件默认使用CRLF策略

这是一个最小化包。它修补了标准库,使其默认使用 \r\n 作为换行符,而不是标准库默认的 \n

这样做可以使发出的电子邮件符合标准。

此外,这样做可以避免在通过outlook.com或office365.com转发电子邮件时收到损坏的电子邮件。

本包修复的问题表现为引号可打印的软换行符 =\n 被转换为编码等号 =3D 并移除换行符后的第一个字符。如果您有跨越换行的URL,它们将不再有效。但也会破坏普通文本。

电子邮件策略

我们修补了 Compat32 策略类及其 compat32 实例。还有其他策略,例如使用 \n 作为行分隔符的 EmailPolicy 类及其 SMTP 实例(使用 \r\n 作为行分隔符)。我们不会修改这些。

摘自 email.policy 文档

  • 电子邮件包中所有类都使用默认策略。对于所有解析器类和相关便利函数,以及消息类,这是通过其对应的预定义实例 compat32Compat32 策略。此策略提供了与 Python3.3 之前版本电子邮件包的完全向后兼容性(在某些情况下包括错误兼容性)。

  • 策略关键字到 EmailMessage 的默认值是通过其预定义实例 defaultEmailPolicy 策略。

为什么修补标准库,而不是修复自己的代码?

因为要修复自己的代码,您必须确保在 MessageMIMEText 或任何其他默认为不带回车的 compat32 策略的构造函数的每个实例中覆盖默认策略。

相反,您现在可以简单地将 emailcompat32crlf 添加到您的项目依赖项中,并导入它。完成。

如果您使用 Plone:我们注册了一个自动包含条目点,因此您甚至不需要导入它。

更改日志

1.0.3 (2024-06-03)

  • 为 Plone 注册 z3c.autoinclude.plugin 条目点。这将在启动时自动导入包。当您不使用 Plone 时,此条目点将被忽略。

1.0.2 (2024-05-31)

  • 修复可能的导入错误。

1.0.1 (2024-05-31)

  • 修复初始发布中的几个问题。

1.0.0 (2024-05-31)

  • 初始发布。

项目详情


下载文件

下载您平台的文件。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。

源分发

emailcompat32crlf-1.0.3.tar.gz (3.2 kB 查看散列)

上传时间

构建分发

emailcompat32crlf-1.0.3-py3-none-any.whl (3.2 kB 查看散列)

上传时间 Python 3

由以下支持