Django-mailer - 自动发送在本地不起作用(也许:本地主机 crontab 路径错误?)
Django-mailer - autosend not working locally (maybe: bad localhost crontab path?)
我是 django 的新手,我已经安装了 django-mailer 2.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
None 正在工作.. 请帮忙!
然而,当我在 bash 中使用完全相同的命令时,它起作用了:
$ cd /Users/username/Documents/GitHub/projectname
$ venv/bin/python manage.py send_mail
这确实有效!我完全糊涂了...
PS。关于 django-mailer
:我手动将 4 封排队的电子邮件分别发送到 2 个电子邮件地址,但是,有 2 封丢失但从未送达(也没有丢失在垃圾邮件中)。这正常吗?
您可以尝试更改到代码所在的目录,然后运行它:
* * * * * 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.sh
我是 django 的新手,我已经安装了 django-mailer 2.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
None 正在工作.. 请帮忙!
然而,当我在 bash 中使用完全相同的命令时,它起作用了:
$ cd /Users/username/Documents/GitHub/projectname
$ venv/bin/python manage.py send_mail
这确实有效!我完全糊涂了...
PS。关于 django-mailer
:我手动将 4 封排队的电子邮件分别发送到 2 个电子邮件地址,但是,有 2 封丢失但从未送达(也没有丢失在垃圾邮件中)。这正常吗?
您可以尝试更改到代码所在的目录,然后运行它:
* * * * * 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.sh