2016-10-11 13 views
1

誰かがdjango rest authの電子メール検証を設定する方法を説明できますか? 私のsettings.pyが含まれていますdjango rest auth email validation

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サーバーが必要ですか?

EDIT:明らか

(@McAbraのコメントの後)、この設定は、電子メールを送信することはできません。

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

はそれだけでDjangoのコンソール出力でメールを印刷します。 @McAbraの設定はうまくいきます。 しかし、運用環境では、Gmailで確認メールを送信するのがよいでしょうか? [email protected]などのメールを作成しましたか?

EDIT 2:

私の他の問題は、送信されたメールが空であることです。テンプレートはsite-packages\allauth\templates\account\emailにあります。電子メールのタイトルは[http://localhost:8000/]ですが、内容はありません。私はPythonコンソールにエラーはありません。何か案が?この点を

ソリューション:

site-packages\allauth\templates\account\emailファイルが

+0

実際のメールを期待していないことを確認するだけです。指定した 'EMAIL_BACKEND'を使用している場合は、あなたのコンソールに" email "が出力されます。 – 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

あなたのソリューションは機能しますが、私はEMAIL_HOST_PASSWORDをgmailアカウントのパスワードだけで変更する必要がありました。このURL: 'https:// security.google.com/settings/security/apppasswords'は' 'あなたが探している設定はあなたのアカウントでは利用できません。 '' – Ben

+0

私は短い質問で私の投稿を編集しました。多分あなたはこの点でも私を助けることができますか? :) – Ben

+0

ローカルホストでのみ動作し、私のサーバーでは(同じ設定で)動作しない理由はありますか? – 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' 

の私の設定です。

関連する問題