2017-01-01 1 views
1

이것은 어렵지는 않을 것 같지만 나는 곤두박질 친다. 내 코드베이스와 통합 장고 post_office을 얻었는데, 지금은 문서에 설명 된대로 내가 대기 이메일 cron 작업을 설정 할 수 있는지 테스트하기 위해 노력하고있어 :django-post_office에 lockfile 보내기 send_queued_mail

https://github.com/ui/django-post_office

을 나는 실행 여부 명령 줄이나 crontab을, 나는이 같은 문제가 얻을 :

python manage.py send_queued_mail lockfile='/home/gbeadmin/tmp/post_office.lock' 
Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/home/gbeadmin/webapps/gbe2016test/lib/python2.7/django/core/management/__init__.py", line 399, in execute_from_command_line 
    utility.execute() 
    File "/home/gbeadmin/webapps/gbe2016test/lib/python2.7/django/core/management/__init__.py", line 392, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/home/gbeadmin/webapps/gbe2016test/lib/python2.7/django/core/management/base.py", line 242, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "/home/gbeadmin/webapps/gbe2016test/lib/python2.7/django/core/management/base.py", line 285, in execute 
    output = self.handle(*args, **options) 
    File "/home/gbeadmin/.local/lib/python2.7/site-packages/post_office/management/commands/send_queued_mail.py", line 33, in handle 
    options['lockfile']) 
KeyError: 'lockfile' 

주위를 파고, 나는 내가 잠금 파일을 지정 할 수 있어야한다고보고, 그래서 나는 시도했다 :

python manage.py send_queued_mail --lockfile='<path to lock file>' 
Usage: manage.py send_queued_mail [options] 

manage.py: error: no such option: --lockfile 

나는 또한 동일한 기본 결과와 함께 문서에 나와있는 '-L'옵션을 시도했다 : 다음 나에게 오류를 제공 5,846,510,403,210.

나는 잃었어요 - 내가, 내가 잠금 파일을 설정하는 다른 방법이 표시되지 않는 내 구문에 버그를 볼 수 없습니다 ...

기타 사항 :

  • I을 WebFactional에서 실행 해요
  • 내가 장고 1.6
  • 장고 - post_office (예, 내가 그 길에 있지만이 티켓의 범위에있을 수 없습니다, 업그레이드 할) 실행 해요 - 2.0.8
  • 파이썬 2.7
+0

'send_queued_mail'에 대한 관리 명령을 직접 구현 했습니까? – karthikr

+0

나는 상자 밖에서이 모든 것을 사용하고있다. 그리고 manage.py는 호스트 시스템에 의해 설치된 버전입니다. – bethlakshmi

답변

1

문제는 불편을 끼쳐 드려 죄송합니다. 문제는 관리 명령에 있습니다. KeyError는 'lockfile'이 사전에 존재하지 않는다는 것을 의미합니다. 추가 조사를 통해 문제의 근본 원인이 관리 명령에 있음을 알 수 있습니다. 관리 명령 구문은 Django 1.8 이상에서만 유효합니다. 현재 Django에 대한 지원을 중단합니다. < 1.8. 희망이 도움이!

+0

적어도 답변 해 주셔서 감사합니다! – bethlakshmi

+0

@bethlakshmi 안녕하세요. –

1

나는 django-post-office를 사용하여 동일한 문제가 발생했습니다. 버전 (1.1.2, 1.1.0, 1.0.0)으로 다운 그레이드하는 것도 도움이되지 못했습니다.

FYI 내가 파이썬 2.7.7 장고 버전 사용되었다 (1, 4, 2, '최종'0)

는 I 대신 장고 메일러 시도. Link Here 그것은 매력처럼 작동했습니다. django-post-office와 동일한 단계가 사용되었습니다.

pip install django-mailer 

내 설정에 다음을 추가했습니다.평 파일

INSTALLED_APPS = [ 
    ... 
    "mailer", 
    ... 
] 

EMAIL_BACKEND = "mailer.backend.DbBackend" 

후, 나는 그것은 다음과 같은 테이블 생성

python manage.py syncdb 

이 명령을 실행 : 테이블 mailer_message 만들기

만들기 테이블

을 mailer_messagelog

테이블 mailer_dontsendentry을 만들기

코드에 더 이상의 변경이 필요하지 않습니다. 난 내 응용 프로그램에서 일부 메일을 보낸 후

, 그들은 내가

python manage.py send_mail 

메시지 후 장고 메일 발송에 의해 추가 된 관리 명령을 사용하여, 그 이메일을 보내려면 DB 테이블 mailer_message

에 추가 된 보내 졌을 때, 그것들은 db 테이블에서 제거되어 로그 테이블에 추가되었습니다 - 대신 mailer_messagelog. 주어진 시간 간격 후에이 명령을 실행하기 위해 cron 작업을 작성할 수 있습니다.

희망이 도움이됩니다.