一个可重用的Django应用程序,用于排队发送电子邮件
项目描述
Django Mailer
django-mailer
django-mailer是一个可重用的Django应用程序,用于排队发送电子邮件。它通过在数据库中存储电子邮件以供稍后发送来实现。这有几个优点
鲁棒性 - 如果您的电子邮件提供商出现故障或暂时出现错误,电子邮件不会丢失。此外,由于 send_mail() 调用始终成功(除非您的数据库无法工作),因此触发电子邮件发送的 HTTP 请求不会崩溃,并且任何正在进行的交易都不会回滚。
正确性 - 当一个出站电子邮件作为事务的一部分创建时,由于它存储在数据库中,它将参与事务。这意味着它将在事务提交后发送,如果事务回滚则根本不会发送。
此外,如果您想确保邮件能够非常快速地发送,并且没有沉重的轮询,django-mailer 提供了一个特定的 PostgreSQL runmailer_pg 命令。它使用 PostgreSQL 的 NOTIFY/LISTEN 功能,以便在邮件被添加到队列后立即发送电子邮件。
限制
文件附件也会暂时存储在数据库中,这意味着如果您发送的文件大小超过几百 KB,您可能会遇到数据库对查询大小的限制。如果发生这种情况,您可能需要回退到使用 Django 的默认邮件后端,或者增加数据库限制(该过程取决于您使用的数据库)。
使用 django-mailer,您无法在 Django 视图函数中知道电子邮件是否实际已发送 - send_mail 函数只是将邮件存储在队列中以供稍后发送。
django-mailer 是作为 Pinax生态系统 的一部分开发的,但它只是一个 Django 应用程序,可以独立于其他 Pinax 应用程序使用。
需求
Django >= 2.2
数据库:django-mailer 支持Django支持的所有数据库,以下是一些注意事项
SQLite:如果在其他任何东西尝试将项目放入队列时运行 send_mail 命令,您可能会遇到“数据库被锁定”错误。因此,不建议使用 SQLite 与 django-mailer 一起使用。
MySQL:开发者没有针对 MySQL 进行测试。
用法
请参阅文档中的 usage.rst。
支持
Pinax 文档可在 http://pinaxproject.com/pinax/ 找到。
这是一个由志愿者维护的开源项目,维护者在除本文档以外的其他地方不提供其他支持。对于您发现的错误,您可以提交 GitHub 问题。在提出任何问题的情况下,我们建议您加入 Pinax Slack team 并在那里 ping Pinax 团队,而不是在 GitHub 上创建问题。您也可能在其他编程网站上获得帮助,例如 Stack Overflow。
贡献
有关向 django-mailer 贡献补丁的信息,请参阅 CONTRIBUTING.rst。
请参阅此 博客文章包括视频 或我们的 如何贡献 部分,了解如何向 Pinax 贡献的概述。对于具体贡献想法,请参阅我们的 贡献方式/我们需要帮助的地方 部分。
我们还强烈推荐您阅读我们的 开源与自我关怀博客文章。
行为准则
为了营造一个友好、包容且无骚扰的社区,Pinax项目有一份行为准则。我们要求您将每个人都视为一个与您共享Python、Django和Pinax兴趣的聪明程序员。
Pinax项目博客和Twitter
有关Pinax项目的最新更新和新闻,请关注我们的Twitter账号@pinaxproject,并查看我们的博客。
django-mailer-2.3.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6ea0cbec09f57eb91376780a5f20ab7a834b942435a575e92e8e021f7838d78f |
|
MD5 | 2b6ae228577a09f23b5eb54fe4c53c1d |
|
BLAKE2b-256 | 833647e879aa64502624278dec22dae04505c3463126529bd944628c17f7a849 |
django_mailer-2.3.2-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c7ef5ad63d5484246908bd1ce583c22837c66c1a7b593c9b816f4ead2421c995 |
|
MD5 | e07d46447b4a5219db7e373f002e6350 |
|
BLAKE2b-256 | 6fdf65d30943246e2895f084075ab35811571e1bfe6933c8ab8d2eb4a9c4869c |