如何在没有 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 它打印:

未知命令:'send_mail' 键入“manage.py help”以供使用。

我该如何解决这个问题?

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 邮件程序的主要内容,如果未能解决你的问题,请参考以下文章

没有动作的 HTML 表单

任何与 Pinax 等效的 Ruby on Rails 吗?

如何在没有确认的情况下使用 django migrate

如何在没有服务器的情况下按原样使用 Django 模板

如何在没有用户对象的情况下存储 Django 散列密码?

Django & Couchdb:如何在没有 Apache 服务器的情况下进行部署