Django - SMTPAuthenticationError

Jeff Eisley picture Jeff Eisley · Nov 13, 2012 · Viewed 11.9k times · Source

I got this error when I tested the account sign up form. I am using the django-registration package. I have all the necessary template files in place. I am using WebFaction for hosting. I a beginner at Django and Python. Please talk to me like I am five years old.

SMTPAuthenticationError at /accounts/register/<br>
(535, '5.7.0 Error: authentication failed: authentication failure')

Environment:

Request Method: POST
Request URL: mywebsite.com/accounts/register/

Django Version: 1.4.1
Python Version: 2.7.3
Installed Applications:
('django.contrib.admin',
 'django.contrib.admindocs',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.humanize',
 'django.contrib.messages',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.staticfiles',
 'registration')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')


Traceback:
File "/home/fireflyltd/webapps/foster/lib/python2.7/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "build/bdist.linux-x86_64/egg/registration/views.py" in register
  187.             new_user = backend.register(request, **form.cleaned_data)
File "build/bdist.linux-x86_64/egg/registration/backends/default/__init__.py" in register
  79.                                                                     password, site)
File "/home/fireflyltd/webapps/foster/lib/python2.7/django/db/transaction.py" in inner
  209.                 return func(*args, **kwargs)
File "build/bdist.linux-x86_64/egg/registration/models.py" in create_inactive_user
  85.             registration_profile.send_activation_email(site)
File "build/bdist.linux-x86_64/egg/registration/models.py" in send_activation_email
  264.         self.user.email_user(subject, message, settings.DEFAULT_FROM_EMAIL)
File "/home/fireflyltd/webapps/foster/lib/python2.7/django/contrib/auth/models.py" in email_user
  374.         send_mail(subject, message, from_email, [self.email])
File "/home/fireflyltd/webapps/foster/lib/python2.7/django/core/mail/__init__.py" in send_mail
  61.                         connection=connection).send()
File "/home/fireflyltd/webapps/foster/lib/python2.7/django/core/mail/message.py" in send
  248.         return self.get_connection(fail_silently).send_messages([self])
File "/home/fireflyltd/webapps/foster/lib/python2.7/django/core/mail/backends/smtp.py" in send_messages
  85.             new_conn_created = self.open()
File "/home/fireflyltd/webapps/foster/lib/python2.7/django/core/mail/backends/smtp.py" in open
  54.                 self.connection.login(self.username, self.password)
File "/usr/local/lib/python2.7/smtplib.py" in login
  613.             raise SMTPAuthenticationError(code, resp)

Exception Type: SMTPAuthenticationError at /accounts/register/
Exception Value: (535, '5.7.0 Error: authentication failed: authentication failure')

Answer

Konrad Hałas picture Konrad Hałas · Nov 13, 2012

You need to add SMTP server settings to your settings.py file. Example:

EMAIL_HOST = 'smtp.example.com'
EMAIL_PORT = 25
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_USE_TLS = True

From Django documentation:

Mail is sent using the SMTP host and port specified in the EMAIL_HOST and EMAIL_PORT settings. The EMAIL_HOST_USER and EMAIL_HOST_PASSWORD settings, if set, are used to authenticate to the SMTP server, and the EMAIL_USE_TLS setting controls whether a secure connection is used.