[Solved]-Django password reset. Not sending mail

10👍

I should have mention I’m using hostgator as my provider. So this is my settings.py

EMAIL_HOST      = 'my-domain.com'
EMAIL_HOST_PASSWORD = 'my cpanel password'
EMAIL_HOST_USER = 'my cpanel user'
EMAIL_PORT      = 25
EMAIL_USE_TLS   = False
DEFAULT_FROM_EMAIL  = 'webmaster@my-host.com'
SERVER_EMAIL    = 'root@my-domain.com'

The above settings work!

9👍

In my case I created the users using create_user(). My idea was to create a bunch of accounts and then tell people they could go to the password reset form to set their password. I think it sucks if you need to tell them ‘Use password “welcome123” and then don’t forget to modify your password’ or such.

I found out if I did not pass Password='foo' or also if I passed Password=None to create_user() password resets are not sent. This is because Django sometimes uses an empty password to know that it does not need to authenticate locally, but rather use LDAP or such.

So now I do this:

User.objects.create_user(
  user_name,
  email=user_email,
  password=os.urandom(32),
)

And I can direct people to use the password reset function for their new accounts. I think it would be awesome if I had an option in create_user to automatically send emails for account activation to users, though!

0👍

You need to add a default from address e.g:

DEFAULT_FROM_EMAIL = ‘info@mymail.com’

I see now it is in the comments but will add it here in case anyone misses them too.

👤Josh

Leave a comment