使用URL配置Django应用程序中的电子邮件后端设置。
项目描述
此实用程序基于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 |
本地邮件传输代理 |
submission或submit |
587 |
带有STARTTLS的SMTP |
版本0.1中的更改:现在不建议使用smtps。值smtps曾被用来表示使用TLS连接,即设置EMAIL_USE_TLS为True。现在建议使用submission或submit(见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_EMAIL和SERVER_EMAIL作为查询参数的支持。
0.1.0 - 2018-03-24
添加了新的方案 submission 和 submit,以便在端口 587 上选择带有 STARTTLS 的 SMTP 后端。感谢 @LEW21 提议包含新的 submit URI。
不鼓励使用方案 smtps 并添加用户警告。感谢 @LEW21 提醒这种令人困惑的使用方式。
扩展了被视为真值的查询字符串参数的值。现在,1、on、true 和 yes,无论是单个字符还是全部大小写变体(小写、大写和标题大小写)都被视为 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 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 55ffe3329e48f54f8a75aa36ece08f365e09d61f8a209773ef09a1d4760e699a |
|
MD5 | 4005c75282a07cde7aac787ed51277df |
|
BLAKE2b-256 | 14ef8eb478accd9b0369d46a98d1b43027ee0c254096149265c78e6b2e2fa3b0 |
dj_email_url-1.0.6-py2.py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | cbd08327fbb08b104eac160fb4703f375532e4c0243eb230f5b960daee7a96db |
|
MD5 | 4fbeecbae967a325291aa0e8692efd96 |
|
BLAKE2b-256 | 8af9fcb9745099d821f9a26092d3d6f4df8f10049885045c3a93ff726d2e40a6 |