2013-02-26 45 views
3

我是django-cron的新手,並試圖定期發送郵件。我一直在數據庫外殼運行以下:創建常規電子郵件

from django.core.mail import EmailMessage 
email = EmailMessage('Subject', 'Body', to=['[email protected]']) 
email.send() 

它工作正常。我創建了以下cron.py在我的應用程序之一:

from django_cron import CronJobBase, Schedule 
from django.core.mail import EmailMessage 

class SendMail(CronJobBase): 

    RUN_EVERY_MINS = 1 

    schedule = Schedule(run_every_mins=RUN_EVERY_MINS) 
    code = 'apps.appname.cron.SendMail' 

def job(self): 
    email = EmailMessage('Subject', 'Body', to=['[email protected]']) 
    email.send() 

在我的設置,我有:

CRON_CLASSES = [ 
    "apps.appname.cron.SendMail", 
] 

終於在命令行中我跑

env/bin/python manage.py runcrons --settings=settings.dev 

我希望這會發送郵件每分鐘,但雖然我沒有看到任何命令行錯誤的郵件沒有被髮送。

任何幫助,不勝感激

Ç

+0

我遇到了完全相同的情況。但你的回答沒有澄清事情。你能否詳細解釋一下? – Philip007 2013-07-15 00:21:39

回答

0

所以我覺得我一直在尋找一箇舊版本的文檔中。在SendMail類中,方法應該是'做'而不是'工作'。同時,雖然郵件只發送一次,而不是每分鐘發送一次。

+0

我不明白你的答案。你的意思是把'def job'改成'def do'後,電子郵件每分鐘發出一次? – Philip007 2013-07-15 00:20:47