Проблема с отправкой электронного письма с подтверждением учетной записи от Django.

Я пытаюсь отправить электронное письмо с активацией учетной записи из приложения на основе Django REST и через две службы электронной почты, Gmail и Mailgun, используя Heroku для развертывания приложения. У меня нет проблем с функцией регистрации пользователя с помощью

      "django.core.mail.backends.console.EmailBackend", 

У меня возникли проблемы при использовании почтового сервера

      "django.core.mail.backends.smtp.EmailBackend" 

со следующими настройками:

      from environs import Env

env = Env()
env.read_env()

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_PORT = env('MAILGUN_SMTP_PORT')
EMAIL_HOST_USER = env('MAILGUN_SMTP_LOGIN')
EMAIL_HOST_PASSWORD = env('MAILGUN_SMTP_PASSWORD')

В моей тестовой системе я получаю следующее:

      web_1  | Traceback (most recent call last):
web_1  |   File "/usr/local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
web_1  |     response = get_response(request)
web_1  |   File "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response
web_1  |     response = wrapped_callback(request, *callback_args, **callback_kwargs)
web_1  |   File "/usr/local/lib/python3.8/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
web_1  |     return view_func(*args, **kwargs)
web_1  |   File "/usr/local/lib/python3.8/site-packages/django/views/generic/base.py", line 69, in view
web_1  |     return self.dispatch(request, *args, **kwargs)
web_1  |   File "/usr/local/lib/python3.8/site-packages/django/utils/decorators.py", line 43, in _wrapper
web_1  |     return bound_method(*args, **kwargs)
web_1  |   File "/usr/local/lib/python3.8/site-packages/django/views/decorators/debug.py", line 90, in sensitive_post_parameters_wrapper
web_1  |     return view(request, *args, **kwargs)
web_1  |   File "/usr/local/lib/python3.8/site-packages/dj_rest_auth/registration/views.py", line 47, in dispatch
web_1  |     return super().dispatch(*args, **kwargs)
web_1  |   File "/usr/local/lib/python3.8/site-packages/rest_framework/views.py", line 509, in dispatch
web_1  |     response = self.handle_exception(exc)
web_1  |   File "/usr/local/lib/python3.8/site-packages/rest_framework/views.py", line 469, in handle_exception
web_1  |     self.raise_uncaught_exception(exc)
web_1  |   File "/usr/local/lib/python3.8/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
web_1  |     raise exc
web_1  |   File "/usr/local/lib/python3.8/site-packages/rest_framework/views.py", line 506, in dispatch
web_1  |     response = handler(request, *args, **kwargs)
web_1  |   File "/usr/local/lib/python3.8/site-packages/rest_framework/generics.py", line 190, in post
web_1  |     return self.create(request, *args, **kwargs)
web_1  |   File "/usr/local/lib/python3.8/site-packages/dj_rest_auth/registration/views.py", line 69, in create
web_1  |     user = self.perform_create(serializer)
web_1  |   File "/usr/local/lib/python3.8/site-packages/dj_rest_auth/registration/views.py", line 95, in perform_create
web_1  |     complete_signup(
web_1  |   File "/usr/local/lib/python3.8/site-packages/allauth/account/utils.py", line 209, in complete_signup
web_1  |     return perform_login(
web_1  |   File "/usr/local/lib/python3.8/site-packages/allauth/account/utils.py", line 172, in perform_login
web_1  |     send_email_confirmation(request, user, signup=signup, email=email)
web_1  |   File "/usr/local/lib/python3.8/site-packages/allauth/account/utils.py", line 346, in send_email_confirmation
web_1  |     email_address.send_confirmation(request, signup=signup)
web_1  |   File "/usr/local/lib/python3.8/site-packages/allauth/account/models.py", line 62, in send_confirmation
web_1  |     confirmation.send(request, signup=signup)
web_1  |   File "/usr/local/lib/python3.8/site-packages/allauth/account/models.py", line 169, in send
web_1  |     get_adapter(request).send_confirmation_mail(request, self, signup)
web_1  |   File "/usr/local/lib/python3.8/site-packages/allauth/account/adapter.py", line 464, in send_confirmation_mail
web_1  |     self.send_mail(email_template, emailconfirmation.email_address.email, ctx)
web_1  |   File "/code/backend/adapter.py", line 11, in send_mail
web_1  |     msg.send()
web_1  |   File "/usr/local/lib/python3.8/site-packages/django/core/mail/message.py", line 284, in send
web_1  |     return self.get_connection(fail_silently).send_messages([self])
web_1  |   File "/usr/local/lib/python3.8/site-packages/django/core/mail/backends/smtp.py", line 102, in send_messages
web_1  |     new_conn_created = self.open()
web_1  |   File "/usr/local/lib/python3.8/site-packages/django/core/mail/backends/smtp.py", line 69, in open
web_1  |     self.connection.login(self.username, self.password)
web_1  |   File "/usr/local/lib/python3.8/smtplib.py", line 748, in login
web_1  |     raise last_exception
web_1  |   File "/usr/local/lib/python3.8/smtplib.py", line 737, in login
web_1  |     (code, resp) = self.auth(
web_1  |   File "/usr/local/lib/python3.8/smtplib.py", line 660, in auth
web_1  |     raise SMTPAuthenticationError(code, resp)
web_1  | smtplib.SMTPAuthenticationError: (534, b'5.7.9 Application-specific password required. Learn more at\n5.7.9  https://support.google.com/mail/?p=InvalidSecondFactor s189-20020a372cc6000000b007429961e15csm8481890qkh.118 - gsmtp')
web_1  | [20/Mar/2023 19:52:52] "POST /api/v1/dj-rest-auth/registration/ HTTP/1.1" 500 17631

0 ответов

Другие вопросы по тегам