跳转到主要内容

使用URL配置Django应用程序中的电子邮件后端设置。

项目描述

CI status Python versions

此实用程序基于Kenneth Reitz的dj-database-url。

它允许使用12factor启发式环境变量来配置Django应用程序中的电子邮件后端。

用法

settings.py中导入包

import dj_email_url

获取您的电子邮件配置值。默认选项是从EMAIL_URL环境变量中获取它们

email_config = dj_email_url.config()

另一种选项是解析任意的电子邮件URL

email_config = dj_email_url.parse('smtp://...')

最后,需要将值分配给设置

EMAIL_FILE_PATH = email_config['EMAIL_FILE_PATH']
EMAIL_HOST_USER = email_config['EMAIL_HOST_USER']
EMAIL_HOST_PASSWORD = email_config['EMAIL_HOST_PASSWORD']
EMAIL_HOST = email_config['EMAIL_HOST']
EMAIL_PORT = email_config['EMAIL_PORT']
EMAIL_BACKEND = email_config['EMAIL_BACKEND']
EMAIL_USE_TLS = email_config['EMAIL_USE_TLS']
EMAIL_USE_SSL = email_config['EMAIL_USE_SSL']
EMAIL_TIMEOUT = email_config['EMAIL_TIMEOUT']

或者,也可以使用这个不太明确的快捷方式

vars().update(email_config)

支持的后端

目前,dj-email-url支持

后端

EMAIL_URL

描述

控制台

console

写入到stdout(开发)

SMTP

smtp

通过本地主机的端口25使用邮件传输代理发送

SMTP

submission://USER:PASSWORD@smtp.sendgrid.com

通过SendGrid SMTP在端口587上发送(STARTTLS)

文件

file

写入到文件

内存

memory

模拟

dummy

来自电子邮件地址

dj-email-url也支持可选地指定原始电子邮件地址。

设置

查询参数

SERVER_EMAIL

_server_email

DEFAULT_FROM_EMAIL

_default_from_email

例如:smtp://USER:PASSWORD@smtp.example.com/?_server_email=error@example.com

不要忘记为设置分配值

SERVER_EMAIL = email_config.get('SERVER_EMAIL', 'root@localhost')
DEFAULT_FROM_EMAIL = email_config.get('DEFAULT_FROM_EMAIL', 'webmaster@localhost')

其他设置

其他设置可通过查询参数设置。

设置

查询参数

注释

EMAIL_TIMEOUT

超时

自v1.0.5版起新增.

更多信息

SMTP后端

当URL中的方案是以下之一时,将选择SMTP后端

默认端口

注释

smtp

25

本地邮件传输代理

submissionsubmit

587

带有STARTTLS的SMTP

版本0.1中的更改:现在不建议使用smtps。值smtps曾被用来表示使用TLS连接,即设置EMAIL_USE_TLSTrue。现在建议使用submissionsubmit(见IANA的服务名称和端口号IANA的统一资源标识符方案)。

在最受欢迎的邮件配置选项中,是使用第三方SMTP服务器转发邮件。

>>> url = 'submission://user@example.com:pass@smtp.example.com'
>>> url = dj_email_url.parse(url)
>>> assert url['EMAIL_PORT'] == 587
>>> assert url['EMAIL_USE_SSL'] is False
>>> assert url['EMAIL_USE_TLS'] is True

其他常见选项是使用本地邮件传输代理Postfix或Exim。在这种情况下,操作非常简单

>>> url = 'smtp://'
>>> url = dj_email_url.parse(url)
>>> assert url['EMAIL_HOST'] == 'localhost'
>>> assert url['EMAIL_PORT'] == 25
>>> assert url['EMAIL_USE_SSL'] is False
>>> assert url['EMAIL_USE_TLS'] is False

也可以配置通过SSL的SMTP(通常在465上)。此配置通常不推荐,但对于旧系统可能需要。要应用此配置,请使用查询参数指定SSL(使用ssl=True),并明确指定端口

>>> url = 'smtp://user@domain.com:pass@smtp.example.com:465/?ssl=True'
>>> url = dj_email_url.parse(url)
>>> assert url['EMAIL_PORT'] == 465
>>> assert url['EMAIL_USE_SSL'] is True
>>> assert url['EMAIL_USE_TLS'] is False

文件后端

文件后端是需要路径的唯一后端。URL路径存储在EMAIL_FILE_PATH键中。

许可证

本作品受多个许可证的许可。

  • 所有原始源代码均受BSD-2-Clause许可证许可。

  • 所有文档均受CC-BY-4.0许可证许可。

  • 某些配置和数据文件受CC0-1.0许可证许可。

有关更准确的信息,请检查各个文件。

您可以使用REUSE辅助工具检查合规性。

变更日志

未发布

1.0.6 - 2022-09-24

  • 删除不必要的代码(感谢@matthiask)。

  • 改进许可证元数据。许可证本身没有变化。

1.0.5 - 2022-02-05

  • 增加了对超时设置的支持。

1.0.4 - 2022-01-16

  • 发布版本后更新变更日志。

1.0.3 - 2022-01-16

  • 增加了对Python 3.10的支持。

  • 将持续集成基础设施从Travis切换到GitHub Actions。

  • 切换到PyPA构建前端。

1.0.2 - 2021-01-23

  • 增加对Python 3.9的支持(@pauloxnet)

1.0.1 - 2020-06-03

  • 包含LICENSE文件在tar包中。感谢@fabaff。

1.0.0 - 2020-02-16

  • 删除了对已达到生命周期的Python版本的支持。

  • 修复了拼写错误。感谢@jeffmacdonald。

0.2.0 - 2019-04-08

  • 增加了对URL中的DEFAULT_FROM_EMAILSERVER_EMAIL作为查询参数的支持。

0.1.0 - 2018-03-24

  • 添加了新的方案 submissionsubmit,以便在端口 587 上选择带有 STARTTLS 的 SMTP 后端。感谢 @LEW21 提议包含新的 submit URI。

  • 不鼓励使用方案 smtps 并添加用户警告。感谢 @LEW21 提醒这种令人困惑的使用方式。

  • 扩展了被视为真值的查询字符串参数的值。现在,1ontrueyes,无论是单个字符还是全部大小写变体(小写、大写和标题大小写)都被视为 True

0.0.10 - 2016-10-14

  • 发布版本后修复了更改日志中的发布日期。

0.0.9 - 2016-10-14

  • 修复了当用户在其 URL 中设置 ssl=False 时的错误(感谢 bogdal)。

0.0.8 - 2016-06-07

  • 允许使用通用 wheel。

0.0.7 - 2016-05-31

  • 在文档中添加 EMAIL_USE_SSL 设置并设置默认值(感谢 iraycd)。

  • 添加覆盖率(感谢 iraycd)。

0.0.6 - 2016-04-18

  • 修复了解析不带凭据的 URL 时的错误(感谢 martinmaillard)。

0.0.5 - 2016-04-17

  • 允许使用 URL 编码的凭据(感谢 kane-c)。

0.0.4 - 2015-03-05

  • 修复 README。

0.0.3 - 2015-03-05

  • 添加更改日志。

  • 为 SMTP 后端添加 ssl= 选项作为查询参数。

  • 添加 Travis 持续集成。

0.0.2 - 2014-03-12

  • 添加 Python 3 支持。

0.0.1 - 2013-02-12

  • 初始版本。

项目详情


下载文件

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

源分布

dj-email-url-1.0.6.tar.gz (15.6 kB 查看哈希)

上传时间

构建分布

dj_email_url-1.0.6-py2.py3-none-any.whl (6.3 kB 查看哈希)

上传时间 Python 2 Python 3

由以下赞助商支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面