【问题标题】:How to send emails stored in MySQL database in Django如何在 Django 中发送存储在 MySQL 数据库中的电子邮件
【发布时间】:2020-08-09 15:29:12
【问题描述】:

我正在Django 中构建一个 Web 应用程序。我将所有电子邮件存储在 MySQL 数据库队列中,以便系统在发送这些电子邮件时不会变慢。

使用PHP,我将配置 cronjob 以每分钟运行一次来​​查询数据库队列并发送这些电子邮件。用Django,我不知道怎么办?

任何有用的指针都会很有帮助。

谢谢

【问题讨论】:

  • 如果你只发一两封邮件,也不算慢。而且你仍然可以使用 cronjob。
  • Django Background Tasks 作为猜测。
  • 您如何存储电子邮件?在您将它们排队的视图或脚本中,为什么不发送它们?
  • 有时,我会一次发送超过 3-4 封电子邮件,我发现使用 SMTP 需要几秒钟。所以我存储在一个我想单独处理的queue 表中。
  • 如果你真的只想像在 PHP 中那样做,你可以在 django 中创建一个管理命令并从一个 cronjob (docs.djangoproject.com/en/3.0/howto/custom-management-commands) 触发它,这可以开箱即用,无需额外的依赖.对于更复杂的解决方案,您可以使用 celery,但它会在您的解决方案中添加另一层,因此请谨慎考虑。

标签: python mysql django cron celery


【解决方案1】:

请看看这个模块https://pypi.org/project/django-post-office/ 它完全符合您的需要。它将所有电子邮件存储在数据库中,然后您可以使用命令发送它们

python manage.py send_queued_mail

如果由于某些原因您不能使用该模块。您可以创建命令并以类似方式运行它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-03
    • 2018-07-24
    • 2016-05-22
    • 1970-01-01
    • 2012-04-26
    相关资源
    最近更新 更多