如何在没有 PINAX 的情况下使用 django 邮件程序
Posted
技术标签:
【中文标题】如何在没有 PINAX 的情况下使用 django 邮件程序【英文标题】:how to use django mailer without PINAX 【发布时间】:2010-12-21 15:06:20 【问题描述】:我想使用没有 PINAX 的 django-mailer。当我运行./manager.py send_mail
它打印:
我该如何解决这个问题?
Python 2.5.1(r251:54863,2007 年 9 月 22 日,01:43:31) [GCC 4.2.1 (SUSE Linux)] 在 linux2 上 输入“帮助”、“版权”、“信用”或“许可”以获取更多信息。 (交互式控制台) >>> 从 django.conf 导入设置 >>> settings.INSTALLED_APPS 中的“邮件程序” 真的 >>> $./manage.py 发送邮件 未知命令:'send_mail' 键入“manage.py help”以供使用。我使用easy_install django-mailer 来安装邮件程序,以及django 版本 是
版本 = (1, 1, 1, 'final', 0)邮件程序版本为 0.1.0
【问题讨论】:
您是否已安装并将其添加到您的INSTALLED_APPS
设置中?
现在我知道为什么了:使用 git clone 和 python ./setup.py install 重新安装邮件程序,它成功了!也许 easy_install 在这里不起作用。
【参考方案1】:
需要仔细检查的几件事:
-
您是否安装了 django-mailer?
邮件在您的 PYTHONPATH 中吗?导入邮件程序时,您是否获得了预期的模块(版本和预期的路径)?
邮件程序是否列在您的 INSTALLED_APPS 中?
$ ./manage.py shell >>> import mailer >>> mailer.get_version() '0.1.0' >>> mailer.__file__ /PATH/TO/YOUR/PYTHON/LIBS/mailer/__init__.py >>> # did it import? did you get the expected version? expected path? >>> # good, django-mailer is in your PYTHONPATH. now verify project settings. >>> from django.conf import settings >>> 'mailer' in settings.INSTALLED_APPS True
此时您应该在可用的 manage.py 子命令列表中看到 send_mail。
$ ./manage.py --help 用法:manage.py 子命令 [options] [args] [...] 运行服务器 发送邮件 贝壳 [...] $
之后,您还需要确保您正在通过 cron 作业运行 ./manage.py send_mail
。
* * * * * (cd $YOUR_PROJECT; /usr/bin/python manage.py send_mail >> cron_mail.log 2>&1)
0,20,40 * * * * (cd $YOUR_PROJECT; /usr/bin/python manage.py retry_deferred >> cron_mail_deferred.log 2>&1)
在开发过程中无需实际设置这两个 cronjobs,只需通过管理员查找您的消息即可。
django-mailer 模块有使用说明,但这应该可以帮助您启动和运行。
【讨论】:
添加了一项检查以确保项目可以导入邮件。问题已更新以确认 django-mailer 是通过 easy_install 安装的,但“未知命令”错误表明邮件程序可能无法通过当前 PYTHONPATH 环境设置使用。【参考方案2】:你不能直接从django-mailer下载并单独安装吗?
【讨论】:
以上是关于如何在没有 PINAX 的情况下使用 django 邮件程序的主要内容,如果未能解决你的问题,请参考以下文章