2011-10-05 5 views
1

명시 적으로 postfix 서버를 시작할 필요가없는 Django에서 postfix sendmail 명령을 에뮬레이트하고 싶습니다.명시 적 postfix 서버가없는 django를 보내주십시오

은 단순히 명령 행에 다음을 입력하면 예를 들어 :

sendmail [email protected] 
my message body 
^D 

이것은 [email protected]에 메시지를 보내드립니다. 나는 postfix 서버를 명시 적으로 시작할 필요가 없다.

기본적으로 다른 언어 (Perl 및 PHP)는 바인딩을 가지고있는 것처럼 보입니다. 그러나, 나는 장고/파이썬에서 그것을 할 수있는 방법을 찾을 수 없었다. 내가 가진 가장 가까운 수동으로하고 다음

EMAIL_HOST = 'localhost' 
settings.py에서

등을 설정하여이었다

postfix start 

이 그 일을 할 장고 send_mail() 명령을 허용하지만, 달성하기 위해 어떤 방법이없는 백그라운드에서 실행중인 접미사 서버가 없어도 되나요? 다른 환경이 어떻게 성공적으로이를 달성합니까?

감사 -S

(더 -이 할 수있는 타사의 Gmail 계정을 설정하지 않으 - 그건 잘 착용 문제이다).

답변

0

this이 도움이 될 수 있습니다. 개인적으로 시도하지는 않았지만 후위 서버 설정과 관련된 모든 문제없이 사용자의 요구에 맞는 것처럼 보입니다.

+0

후위 서버를 설정하는 것은 꽤 쉽습니다 (sudo postfix start). 그래서 나는 총알을 물고해야만합니다. 명시 적 postfix 프로세스가 실행되지 않는 경우에도 postfix sendmail 라이브러리가 이러한 다른 환경에서 어떻게 작동하는지 궁금했습니다. – shreddd

0

전자 메일 배달을 에뮬레이트하는 간단한 솔루션은 Python 디버깅 서버입니다. 다음 SMTP 모드에서 포트 1025에 실행 : 당신이 필요 할 수 있도록

python -m smtpd -n -c DebuggingServer localhost:1025 

당신은, 당신의 장고 테스트 서버는하지만 로컬 호스트의 포트 1025에 이메일을 발사되어 있는지 확인해야합니다 귀하의 settings.py :

EMAIL_PORT = 1025 

올바르게 작동하면 테스트 서버는 장고가 보낸 모든 메일을 터미널에 직접 에코하여 개발중인 출력을 계속 주시 할 수 있습니다. 나는 최근에 우분투 상자에서 postfix 작업을 할 때 어려움을 겪었을 때 이것을 사용했습니다. 단지 장고 테스트 서버를 매달 았고 send_mail()에있었습니다.

여기는 Django doc with more info on email testing입니다.