2016-10-11 2 views
1

누군가 장고 나머지 인증에 대한 이메일 확인을 설정하는 방법을 설명 할 수 있습니까? 내 settings.py가 포함django rest auth 이메일 인증

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' 
ACCOUNT_EMAIL_VERIFICATION = 'mandatory' 
ACCOUNT_AUTHENTICATION_METHOD = 'email' 
ACCOUNT_EMAIL_REQUIRED = True 
ACCOUNT_USERNAME_REQUIRED = False 

그리고 내 urls.py에서이 줄을 추가했습니다 :

url(r'^accounts/', include('allauth.urls')), 

을하지만이 엔드 포인트에 등록 할 때 : rest-auth/registration/, 이메일이 전송되지 않습니다, 그러나 사용자가 생성됩니다. 전자 메일 확인을 보내는 좋은 구성은 무엇입니까? SMTP 서버가 있어야합니까?

편집 : 분명히

(@McAbra 주석 후)이 설정은 이메일을 보낼 수 없습니다 :

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' 

그것은 단지 장고 콘솔 출력에 메일을 인쇄 할 수 있습니다. @McAbra에 의해 주어진 설정이 잘 작동합니다. 하지만 프로덕션 환경에서는 Gmail을 사용하여 확인 이메일을 보내는 것이 좋습니다. [email protected]과 같은 이메일을 작성 했습니까?

편집 2 :

내 다른 문제가 보낸 메일이 비어 있다는 것입니다. 템플릿은 site-packages\allauth\templates\account\email에 있습니다. 이메일 제목은 [http://localhost:8000/]이지만 내용은 없습니다. 나는 파이썬 콘솔에 오류가 없습니다. 어떤 생각? 이 점에 대한

솔루션 :

site-packages\allauth\templates\account\email 파일

+0

그냥 진짜 이메일을 기대하지 않는 것입니까? 지정한'EMAIL_BACKEND'을 사용하고 있다면 콘솔에 "이메일"이 출력됩니다. – McAbra

+0

전자 메일로 등록 확인을 설정하고 싶습니다. 사용자에게 유효성 검사 전자 메일을 보내고 유효성 검사를 진행하여 사용자 계정을 활성화하도록 구성을 설정하는 솔루션을 찾고 있습니다. – Ben

+0

자, 콘솔에 전자 메일이 인쇄되었지만 실제 전자 메일을 실제 사서함으로 보내시겠습니까? – McAbra

답변

1

your-app\templates\account\email에 복사해야합니다 당신은 당신이 진짜 이메일을 보내려면 SMTP 서버가 필요합니다. 저는 Gmail SMTP 서버를 사용하고 싶습니다. settings.py은 다음과 같습니다.

EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_PORT = 587 
EMAIL_USE_TLS = True 
EMAIL_HOST_USER = 'gmail_username' 
EMAIL_HOST_PASSWORD = 'password from https://security.google.com/settings/security/apppasswords' 

시도해보십시오. 도움이되지 않는다면 더 도와 드리겠습니다.

+0

귀하의 솔루션은 작동하지만 간단히 Gmail 계정 비밀번호로 EMAIL_HOST_PASSWORD를 변경해야합니다. 이 url :'https : // security.google.com/settings/security/apppasswords'는''당신이 찾고있는 설정은 당신의 계정에서 사용할 수 없습니다. ''를 반환합니다. – Ben

+0

그리고 짧은 질문으로 내 게시물을 편집했습니다. 어쩌면이 시점에서 나를 도울 수 있습니까? :) – Ben

+0

localhost에서만 작동하고 내 서버에서는 (동일한 설정으로) 작동하는 이유가 있습니까? – Ben

2

나는 전자 메일을 보내는 데 문제가 있었고 이후에는 전자 메일의 링크로 문제가 발생했습니다. 계정 확인 전자 메일보기를 명시 적으로 설정해야합니다. 다음은

는 로컬 이메일을 확인하려는 경우가 mailcatcher.me을 사용할 수 있습니다 urls.py

from allauth.account.views import confirm_email as allauthemailconfirmation 

    urlpatterns = [ 
    url(r'^api/rest-auth/account-confirm-email/(?P<key>[-:\w]+)/$',allauthemailconfirmation, 
    name='account_confirm_email'), 
    ] 

에 settings.py

ACCOUNT_AUTHENTICATION_METHOD = 'email' 
ACCOUNT_EMAIL_REQUIRED = True 
ACCOUNT_USERNAME_REQUIRED = False 
ACCOUNT_EMAIL_VERIFICATION = 'mandatory' 

내 설정입니다.