跳转到主要内容

django-email-bandit是一个用于在测试环境中劫持邮件发送的Django邮件后端。

项目描述

A Django 邮件后端,用于在预发布/测试环境中拦截邮件发送。它扩展了默认的 SMTP 后端,以拦截发出的邮件并将它们发送到您指定的单个电子邮件地址。它不会拦截发送到站点的管理员(由 ADMINS 设置定义)的邮件,因此不会干扰 500 错误邮件。

您还可以配置被拦截的邮件通过标准的 Python 日志记录。提供了混合类,以使用相同的拦截逻辑为任何现有的电子邮件后端,例如 django-ses

要求

  • Python 3

  • Django >= 2.2(支持版本)

安装

要使用 pip 安装 django-email-bandit

pip install django-email-bandit

将 django-email-bandit 添加到您的已安装应用

INSTALLED_APPS = (
    ...
    'bandit',
    ...
)

对于您的测试环境,您应启用后端

EMAIL_BACKEND = 'bandit.backends.smtp.HijackSMTPBackend'

并设置将接收所有邮件的电子邮件

BANDIT_EMAIL = 'bandit@example.com'

或甚至多个地址

BANDIT_EMAIL = ['bandit@example.com', 'accomplice@example.com']

还可以为某些电子邮件地址和域名启用白名单

BANDIT_WHITELIST = [
    'iloveemail@example.com',  # Just this specific email address
    'example.net'   # All email addresses @example.net
]

文档

完整项目文档在 Read the Docs 上。

维护者信息

我们使用 Github Actions 来进行代码检查(使用 pre-commit、black、isort 和 flake8),测试(使用 tox 和 tox-gh-actions),计算覆盖率(使用 coverage),以及构建文档(使用 sphinx)。

我们有一个本地脚本来执行这些操作,名为 maintain.sh

$ ./maintain.sh

Github Action 工作流在 Github 中创建新的发布时还会构建和推送新的包到 PyPI。这使用了一个特定项目的 PyPI token,如 PyPI 文档中所述。该 token 已保存在此仓库的 PYPI_PASSWORD 设置中,但未保存在其他任何地方,因此如果出于任何原因需要它,应删除当前的 token 并生成一个新的。

与往常一样,在创建发布之前,请确保在 bandit/__init__.py 中更新版本号,以确保将正确的版本推送到 PyPI。

问题或问题?

如果您有任何问题、问题或改进请求,请通过 Github 告诉我们。

Caktus 咨询集团,LLC 赞助的开发

由以下支持

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