У меня проблема при попытке сбросить пароль. Я настроил файл settings.py в соответствии с руководством по Coreys на YouTube:
Python Django - электронная почта и пароль или
Vitor Freitas инструкция. Запуск этого на моей локальной виртуальной машине не вызывает никаких проблем.
Также, когда я бегу send_mail(mail_subject, message, mail_sender,[mail_recipient])
с from django.core.mail import send_mail
не вызывает никаких проблем на моем сервере в Канаде - он (это он :-)) может отправить электронное письмо через службу электронной почты, расположенную в Австрии.
Сообщение об ошибке в консоли или браузере: (полное сообщение об ошибке см. Внизу)
Request Method: POST
Request URL: http://mydomain.xy/password-reset/
Django Version: 2.0
Exception Type: SMTPRecipientsRefused
Exception Value: {'myemail@mydomain.xy': (550, b'Invalid authentication (you can only send from @mydomain.xy or its aliases)')}
Exception Location /usr/lib/python3.5/smtplib.py in sendmail, line 876
Python Executable: ~/django_env/bin/python3
Python Version: 3.5.2
Python Path:
['~/django_env/mwrench_dev',
'~/django_env/lib/python35.zip',
'~/django_env/lib/python3.5',
'~/django_env/lib/python3.5/plat-x86_64-linux-gnu',
'~/django_env/lib/python3.5/lib-dynload',
'/usr/lib/python3.5',
'/usr/lib/python3.5/plat-x86_64-linux-gnu',
'~/django_env/lib/python3.5/site-packages']
Что-то должно отличаться между функцией send_mail () из django.core.mail
и smtplib.py, используемым из серверной части. Но я не могу понять, в чем проблема.
В моем urls.py
path(r'password-reset/', auth_views.PasswordResetView.as_view(template_name='registration/password_reset_form.html'), ame='password_reset'),
path(r'password-reset-done/', auth_views.PasswordResetDoneView.as_view(template_name='registration/password_reset_done.html'), name='password_reset_done'),
path(r'password-reset-confirm/<uidb64>/<token>/', auth_views.PasswordResetConfirmView.as_view(template_name='registration/password_reset_confirm.html'), name='password_reset_confirm'),
В пределах settings.py, если определены эти строки
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'mail.domainname.xy'
EMAIL_PORT = 587
EMAIL_USE_TLS=TRUE
EMAIL_HOST_USER='user@domainname.xy'
EMAIL_HOST_PASSWORD='mypassword'
** Полное сообщение об ошибке:
Request Method: POST
Request URL: http://www.example.com/password-reset/
Django Version: 2.0
Python Version: 3.5.2
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'crispy_forms',
]
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
File "~/django_env/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
35. response = get_response(request)
File "~/django_env/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
128. response = self.process_exception_by_middleware(e, request)
File "~/django_env/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
126. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "~/django_env/lib/python3.5/site-packages/django/views/generic/base.py" in view
69. return self.dispatch(request, *args, **kwargs)
File "~/django_env/lib/python3.5/site-packages/django/utils/decorators.py" in _wrapper
62. return bound_func(*args, **kwargs)
File "~/django_env/lib/python3.5/site-packages/django/utils/decorators.py" in _wrapped_view
142. response = view_func(request, *args, **kwargs)
File "~/django_env/lib/python3.5/site-packages/django/utils/decorators.py" in bound_func
58. return func.__get__(self, type(self))(*args2, **kwargs2)
File "~/django_env/lib/python3.5/site-packages/django/contrib/auth/views.py" in dispatch
406. return super().dispatch(*args, **kwargs)
File "~/django_env/lib/python3.5/site-packages/django/views/generic/base.py" in dispatch
89. return handler(request, *args, **kwargs)
File "~/django_env/lib/python3.5/site-packages/django/views/generic/edit.py" in post
142. return self.form_valid(form)
File "~/django_env/lib/python3.5/site-packages/django/contrib/auth/views.py" in form_valid
419. form.save(**opts)
File "~/django_env/lib/python3.5/site-packages/django/contrib/auth/forms.py" in save
306. email, html_email_template_name=html_email_template_name,
File "~/django_env/lib/python3.5/site-packages/django/contrib/auth/forms.py" in send_mail
260. email_message.send()
File "~/django_env/lib/python3.5/site-packages/django/core/mail/message.py" in send
294. return self.get_connection(fail_silently).send_messages([self])
File "~/django_env/lib/python3.5/site-packages/django/core/mail/backends/smtp.py" in send_messages
110. sent = self._send(message)
File "~/django_env/lib/python3.5/site-packages/django/core/mail/backends/smtp.py" in _send
126. self.connection.sendmail(from_email, recipients, message.as_bytes(linesep='\r\n'))
File "/usr/lib/python3.5/smtplib.py" in sendmail
876. raise SMTPRecipientsRefused(senderrs)
Exception Type: SMTPRecipientsRefused at /password-reset/
Exception Value: {'emyemail@gmail.com': (550, b'Invalid authentication (you can only send from @mydomain.com or its aliases)')}