首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django-Mailer不会停止发送电子邮件

Django-Mailer不会停止发送电子邮件
EN

Server Fault用户
提问于 2012-01-25 04:55:44
回答 2查看 1.1K关注 0票数 2

我设置了Django Mailer并将这两个命令添加到crontab中:

代码语言:javascript
运行
复制
* * * * *      root     python /srv/www/cpm/manage.py send_mail >> /srv/www/cpm/cron_mail.log
0,20,40 * * * * root     python /srv/www/cpm//manage.py retry_deferred >> /srv/www/cpm/cron_mail_deferred.log

CPM是保存我的Django项目的目录。

重新启动cron之后,我启动了Django项目,并点击了一个链接,将大约600封电子邮件放到Django邮件队列中。cron命令接收排队的消息,并忠实地开始发送电子邮件。

为了测试的目的,每封电子邮件都是寄给我的。不出所料,电子邮件开始蜂拥而至。

然而,在大约30封电子邮件之后,我想停止发送电子邮件,因为我想做一些改变,重新开始这个过程(我现在正在测试这个应用程序)。我进入MySQL,删除了django_mailer_queuedmessages表中的所有记录,认为这将停止任何进一步的电子邮件。

电子邮件源源不断。

然后我删除了django_mailer_messages表中的所有记录,希望这样可以阻止电子邮件。

电子邮件源源不断地来!

然后,我删除了以django_mailer...开头的每个表中的所有记录,并注释掉了其中包含django-mailercrontab行(上面的两行),并重新启动了cron

,电子邮件还在发!!

搞什么鬼!?他们是怎么被送出去的?有趣的是,每封电子邮件都说它是在我点击Send All Emails时发送的(大约一小时前),而不是当他们到达我的收件箱时。所以,我不太清楚到底发生了什么,也不知道如何阻止电子邮件的冲击!

嘿,又一封邮件来了.

编辑1

我所有的电子邮件通过我的谷歌应用程序商务电子邮件帐户。我只是用我的Python代码以标准方式连接到Gmail ..。

编辑2

它停止了..。终于来了。最后,我向启动了kill命令的两个进程发送了一个cron信号。我认为唯一发生的事情是,django_mailer将所有的电子邮件都存储在内存中,并从那里发送出去。我原以为django-mailer会从队列中选择一封电子邮件(它自己的queue模型),然后发送它,然后得到下一条消息。情况似乎并非如此,因为我可以删除整个队列,并且消息仍在发送。显然,它们存在于存储在MySQL数据库中的队列之外的其他地方。

有点困惑..。

EN

回答 2

Server Fault用户

发布于 2012-01-25 05:16:11

三步解决方案:

  1. 从您的crontab 中删除条目--我不知道它是否还在每60秒发出一封电子邮件,但是删除或注释这些行,这样我们就可以确定新邮件不会被注入。
  2. 转储邮件队列…无论以什么方式适合您的MTA软件(因为您没有指定您的MTA,我不能更具体)。这样就可以摆脱等待发送的任何邮件(您可能有大量的积压)。
  3. 手动测试并观察系统的行为--这将使您确定发生了什么,以及如何防止将来发生这种情况。
票数 2
EN

Server Fault用户

发布于 2014-04-16 16:53:18

确保'django‘本身没有发送邮件消息。取消您的管理指令。

settings.py

代码语言:javascript
运行
复制
ADMINS = (('Bugs Bunny', 'bugs.bunny@acme.com'),)
MANAGERS = ADMINS

新settings.py

代码语言:javascript
运行
复制
ADMINS = ()
MANAGERS = ADMINS

这将阻止django在配置错误和DEBUG = False时发送电子邮件。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/353343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档