我是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)
我的:
# 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中使用完全相同的命令时,它可以工作:
$ cd /Users/username/Documents/GitHub/projectname
$ venv/bin/python manage.py send_mail这确实有效!我完全糊涂了..。
PS。关于django-mailer:我手动发送了4封排队的电子邮件到2个电子邮件地址,然而,有2封从未发送过(也没有在垃圾邮件中丢失)。这是正常的吗?
发布于 2020-02-28 07:46:55
您可以尝试的是更改代码所在的目录,然后运行它:
* * * * * cd /Users/username/Documents/GitHub/projectname; /usr/bin/python3 manage.py send_mail >> /Users/username/cron_mail.log 2>&1在cron中使用绝对路径也更好。并将其添加到脚本加上导入您的环境变量中。
#!/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然后使脚本可执行:
chmod +rx script.sh把它加进cron中:
* * * * * /path/to/script.shhttps://stackoverflow.com/questions/60446583
复制相似问题