【问题标题】:Django2.0 SMTPRecipientsRefused (550, b'Invalid authentication (you can only send from @yourdomain.xy or its aliases)')Django2.0 SMTPRecipientsRefused (550, b'验证无效(只能从@yourdomain.xy 或其别名发送)')
【发布时间】:2019-03-31 07:18:49
【问题描述】:

我在尝试重置密码时遇到问题。我根据 youtube 上的 Coreys 教程配置了 settings.py: Python Django - Email & PasswordVitor 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']

django.core.mail 中的 send_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)')}

【问题讨论】:

    标签: python-3.5 django-2.0


    【解决方案1】:

    找到它Here

    我需要将默认的 sender 变量添加到 settings.py 文件 - 我不知道我的 Django-Setup 使用的是哪一个。

    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'
    
    Added:
    DEFAULT_FROM_EMAIL = 'user@domainname.xy'
    

    感谢您收看帖子!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-13
      • 1970-01-01
      • 2020-08-18
      • 2023-03-16
      • 2013-06-08
      • 1970-01-01
      相关资源
      最近更新 更多