这看起来并不难,但我被难住了。我已经把django-post_office集成到了我的代码库中,现在我正在测试我可以为排队的电子邮件设置cron作业,如文档中所述:
https://github.com/ui/django-post_office
无论我是在命令行还是在crontab中运行,我都会遇到同样的问题:
python manage.py send_queued_mail lockfile='/home/gbeadmin/tmp/post_office.lock'
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/home/gbeadmin/webapps/gbe2016test/lib/python2.7/django/core/management/__init__.py", line 399, in execute_from_command_line
utility.execute()
File "/home/gbeadmin/webapps/gbe2016test/lib/python2.7/django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/gbeadmin/webapps/gbe2016test/lib/python2.7/django/core/management/base.py", line 242, in run_from_argv
self.execute(*args, **options.__dict__)
File "/home/gbeadmin/webapps/gbe2016test/lib/python2.7/django/core/management/base.py", line 285, in execute
output = self.handle(*args, **options)
File "/home/gbeadmin/.local/lib/python2.7/site-packages/post_office/management/commands/send_queued_mail.py", line 33, in handle
options['lockfile'])
KeyError: 'lockfile'
经过深入研究,我发现我应该能够指定锁定文件,所以我尝试了以下方法:
python manage.py send_queued_mail --lockfile='<path to lock file>'
这给了我一个错误:
Usage: manage.py send_queued_mail [options]
manage.py: error: no such option: --lockfile
我还尝试了文档中列出的'-L'选项,基本结果相同。
我迷路了-我没有看到我的语法错误,我没有看到任何其他方法来设置锁定文件...
其他注意事项:
- 我正在参加网络派系竞选
- 我正在运行django 1.6(是的,我想升级,这是在路上,但不能在此票证的范围内)
- django-post_office - 2.0.8
- Python 2.7
3条答案
按热度按时间m0rkklqb1#
我很抱歉听到你的问题,但问题是在管理命令中。你看,KeyError意味着'lockfile'在字典中不存在。进一步的调查得出问题的根本原因是在管理命令中。管理命令语法仅适用于Django 1.8及更高版本。他们目前正在放弃对Django〈1.8的支持。希望这能有所帮助!
dluptydi2#
我在使用django-post-office时也遇到了同样的问题。降级到版本(1.1.2,1.1.0,1.0.0)也没有帮助。
仅供参考,我使用的是Python 2.7.7和Django版本(1,4,2,'final',0)
我尝试了django-mailer. Link Here,它像一个魅力。遵循与django-post-office相同的步骤。
将以下内容添加到我的settings.py文件中
之后,我运行了这个命令
它创建了以下表格:
正在创建表mailer_message
创建表mailer_dontsendentry
创建表格mailer_messagelog
代码中不需要进一步更改。
在我在应用程序中发送了一些邮件之后,它们被添加到DB表mailer_message中
为了发送那些邮件,我使用了Django-Mailer添加的管理命令
消息发送后,它们会从数据库表中删除,并添加到日志表- mailer_messagelog中。您可以创建一个cron作业,以便在给定的时间间隔后运行此命令。
希望这个有用。
13z8s7eq3#
简短的回答帮助了我:
reload your computer
详情如下:
我遇到了同样的错误,而试图发送电子邮件与
send_queued_mail
命令.但在此之前,我改变了我的设置,这个库冻结.我试图重新加载项目,但只有reloading my computer
帮助,我遇到了这个错误两次,和重新加载计算机解决了问题.