簡體   English   中英

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

沒有一個工作..請幫助!

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

$ cd /Users/username/Documents/GitHub/projectname
$ venv/bin/python manage.py send_mail

這確實有效! 我完全糊塗了...

附注。 關於django-mailer :我手動向 2 個電子郵件地址發送了 4 個排隊的電子郵件,但是,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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM