2017-09-04 1 views
0

장고에서 고객의 SMTP를 설정하는 가장 좋은 방법은 무엇입니까?프로덕션 환경에서 고객을 위해 SMTP를 설정하는 방법은 무엇입니까?

내가 스스로 설정할 수 있습니까? 나는 내부 설정을 할 수 없다. 그렇지 않으면 패스워드를 말해줘야 할 것이다.

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 
EMAIL_USE_TLS = True 
EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_PORT = 587 
EMAIL_HOST_USER = '****@gmail.com' 
EMAIL_HOST_PASSWORD = '*****' 

방법이 있습니까? 어쩌면 그들이 장고 관리자를 통해 자격 증명을 설정할 수 있습니까?

편집 :의 자격 증명을 저장하고 관리자 자격 증명을 설정할 수 있도록 관리자 페이지에 등록하기 위해서는 config을 부르 자, 싱글 톤 객체를 만들려면 지금은

이, 가장 좋은 방법은 보인다. 그런 다음 메시지를 보내는 하나 개의 클래스를 생성하고 할 그런 일 :

backend = EmailBackend(host=config.host, port=config.port, username=config.username, 
          password=config.password, use_tls=config.use_tls, fail_silently=config.fail_silently) 
email = EmailMessage(subject='subj', body='body', from_email=from_email, to=to, 
      connection=backend) 

https://stackoverflow.com/a/22287776/3371056

여기에 같은를하지만 어쩌면 다른 그런 일을 몇 가지 패턴이있다.

답변

0

설정과 같이 데이터베이스에 저장하려면 django-constance을 사용하는 것이 좋습니다. 편집 할 수 있으며 편집 만 가능합니다 (추가/삭제 인터페이스 없음). 여기

당신이 그것을 사용하는 경우가 장고 - 콘스탄스로 views.py에서의 conf를 얻는 코드입니다

from constance import LazyConfig 
config = LazyConfig() 


def put_value(key, value): 
    setattr(config, key, value) 


def get_value(key): 
    return getattr(config, key) 
관련 문제