Django -mailer - автоматическая отправка не работает локально (может быть: неверный путь к локальному хосту crontab?) - PullRequest
0 голосов
/ 28 февраля 2020

Я новичок в django, и я установил django -mailer 2.0 . Это работает, когда я вручную отправляю письма в очереди: (venv)$ python manage.py send_mail, но когда я настраиваю crontab (это первый раз, когда я использую задание cron), он не работает. Я предполагаю, что в путях могут быть некоторые ошибки.

Официальная документация django -почтальщика предлагает:
* * * * * (/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 пропали без вести никогда не доставлялись (не потерялись и в нежелательной почте). Это нормально?

1 Ответ

1 голос
/ 28 февраля 2020

То, что вы можете попробовать, это перейти в каталог, где расположен код, а затем запустить его:

* * * * * cd /Users/username/Documents/GitHub/projectname; /usr/bin/python3 manage.py send_mail >>  /Users/username/cron_mail.log 2>&1

Также лучше использовать абсолютные пути в cron. И добавьте это в скрипт, а затем импортируйте переменные среды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...