2012-08-12 2 views
1

send_mail()으로 내 프로젝트 전체 (내 INSTALLED_APPS의 타사 프로젝트 포함)에서 django.core.mail.send_mail()으로 전화를 교체 할 수 있습니까?모든 앱에서 django.core.mail.send_mail()을 바꾸시겠습니까?

저는 장고 메일러를 send_mail() 대신 django.core.mail.send_mail()으로 대체하는 프로젝트와 통합하고 있습니다. 모두 같은 함수 서명을 사용하기 때문에 워드 프로세서는 장고 메일 발송 일반적과 같이 장고가 제공하는 버전을 가져올 것 장소에서 버전 가져 제안 : 이것은 내 자신의 응용 프로그램 코드를 작동

# favour django-mailer but fall back to django.core.mail 
from django.conf import settings 

if "mailer" in settings.INSTALLED_APPS: 
    from mailer import send_mail 
else: 
    from django.core.mail import send_mail 

을,하지만 난 ' 또한 django.core.mail.send_mail()을 사용하는 타사 앱에서도 동일한 변경을하고 싶습니다. 지금은이 앱이 이메일을 보내려고 할 때 오류가 발생했습니다.

장고는 django.core.mail.send_mail()을 대체 할 수있는 고리를 제공합니까, 아니면 해결 방법이 있습니까? 지금 나는 전자 메일을 보내고 위의 조건부 가져 오기 코드를 추가하는 타사 프로젝트를 포크 립킹하는 방법을 찾고 있지만 분명히 이상적은 아닙니다.

답변

1

장고는 django.core.mail에서 보낸 이메일을 보내는 대신 SMTP를 사용하는 대신에 email backends을 사용합니다. 로컬로 저장하는 등의 기능이 있습니다. django-mailer에는 원하는 것을 정확하게 수행 할 수있는 하나 (as described in usage.txt)도 포함되어 있습니다.

관련 문제