首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django-mailer - autosend不在本地工作(可能:坏的localhost crontab路径?)

Django-mailer - autosend不在本地工作(可能:坏的localhost crontab路径?)
EN

Stack Overflow用户
提问于 2020-02-28 06:45:46
回答 1查看 97关注 0票数 0

我是django的新手,我已经安装了django-mailer2.0。当我手动发送排队的邮件:(venv)$ python manage.py send_mail时,它是工作的,但是当我设置crontab (这是我第一次使用cron作业)时,它不起作用。我想这条路上可能有一些错误。

django-mailer的正式文件建议:

* * * * * (/path/to/your/python /path/to/your/manage.py send_mail >> ~/cron_mail.log 2>&1)

我的:

代码语言:javascript
运行
复制
# first I tried:
* * * * * (/usr/bin/python3 /Users/username/Documents/GitHub/projectname/manage.py send_mail >> ~/cron_mail.log 2>&1)

# then I tried:
* * * * * (/Users/username/Documents/GitHub/projectname/venv/bin/python /Users/username/Documents/GitHub/projectname/manage.py send_mail >> ~/cron_mail.log 2>&1)

# also this:
* * * * * cd /Users/username/Documents/GitHub/projectname; venv/bin/python manage.py send_mail

# I've tried Romeo's solution as well

没有人在工作..。救命啊!

但是,当我在bash中使用完全相同的命令时,它可以工作:

代码语言:javascript
运行
复制
$ cd /Users/username/Documents/GitHub/projectname
$ venv/bin/python manage.py send_mail

这确实有效!我完全糊涂了..。

PS。关于django-mailer:我手动发送了4封排队的电子邮件到2个电子邮件地址,然而,有2封从未发送过(也没有在垃圾邮件中丢失)。这是正常的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-28 07:46:55

您可以尝试的是更改代码所在的目录,然后运行它:

代码语言:javascript
运行
复制
* * * * * cd /Users/username/Documents/GitHub/projectname; /usr/bin/python3 manage.py send_mail >>  /Users/username/cron_mail.log 2>&1

在cron中使用绝对路径也更好。并将其添加到脚本加上导入您的环境变量中。

代码语言:javascript
运行
复制
#!/bin/bash
source /Users/username/.bash_profile #or .bashrc
cd /Users/username/Documents/GitHub/projectname
venv/bin/python manage.py send_mail >>  /Users/username/cron_mail.log 2>&1

然后使脚本可执行:

代码语言:javascript
运行
复制
chmod +rx script.sh

把它加进cron中:

代码语言:javascript
运行
复制
* * * * * /path/to/script.sh
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60446583

复制
相关文章

相似问题

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