django-registrationを使用してアクティベートメールを送信します
-
04-10-2019 - |
質問
django-registrationを使用して、ユーザー名、パスワードでアクティブ化された電子メールを送信する方法があるかどうか興味があります。最初に登録フォームの変更について考えましたが、例が必要です。
解決
Django-Registration 次のコードを内部的に使用して、電子メールの送信を処理します。
send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [self.user.email])
作業したい場合は、settings.pyで値default_from_emailを指定する必要があります。
また、次のことに注意してください。
メールは、email_hostおよびemail_port設定で指定されたSMTPホストとポートを使用して送信されます。 email_host_userとemail_host_passwordの設定は、設定されている場合、SMTPサーバーに認証するために使用され、email_use_tls設定は安全な接続が使用されるかどうかを制御します。
したがって、例を挙げると、Gmailアカウントを使用するためにsettings.pyファイルで使用したものがあります。
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 465
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'my@gmail.com'
EMAIL_HOST_PASSWORD = 'my_emails_password'
Django-Registration その後、メールを送信できるはずです。
他のヒント
email_port = 465は数年前に働いていました。これで、Gmailでポート587を使用する必要があります。理由:Djangoは最初からSSLでSMTPをサポートしていません。 Plain-Text接続が設定された後、StartTLSコマンドのみがサポートされます。ただし、Gmailは、ポート465でこのオプションをサポートしていません。
これが誰かを助けることを願っています。 30分間トラブルシューティングを行った後、Django -Registrationを使用している間もこれを明示的に述べなければならないことに気付きました -
email_backend = 'django.core.mail.backends.smtp.emailbackend'
django-register-activate Django-Registrationと同様の機能を実装しました。基本的に、ユーザーのサインアップ、電子メールの確認とアクティベーション、ユーザーログイン、ユーザーログアウト用のコードを提供します。
独自のコードを実装するために例が必要な場合は、views.pyを確認してforms.py inを確認できます。 Register_activate いくつかのヒントを得るために。
答えが役立つことを願っています。さらに質問がある場合はお知らせください。