Login

Django Registration with GMail account

Author:
btbytes
Posted:
March 29, 2007
Language:
Python
Version:
.96
Score:
7 (after 9 ratings)

This code works with Django-registration app found here: http://code.google.com/p/django-registration/ If you plan to use this django-registrtion code in your website to allow user registration but do not run your own email server,this snippet can be handy.

It uses gmail server to send out email. You have to install libgmail module first.

Add two lines to your settings.py GMAIL_USERNAME = '[email protected]' GMAIL_PASSWORD = 'your_password' Change models.py - create_inactive_user(...) as given above

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
  if send_email:            
      current_domain = Site.objects.get_current().domain
      subject = "Activate your new account at %s" %  current_domain
      message_template = loader.get_template('registration/activation_email.txt')
      message_context = Context({ 'site_url': 'http://%s/' % current_domain,
                                        'activation_key': activation_key,
                                        'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS })
        message = message_template.render(message_context)
        ga = libgmail.GmailAccount(settings.GMAIL_USERNAME, settings.GMAIL_PASSWORD)
        ga.login()
        msg = libgmail.GmailComposedMessage(to=new_user.email, subject=subject, body=message)
        ga.sendMessage(msg)

More like this

  1. Template tag - list punctuation for a list of items by shapiromatron 11 months, 2 weeks ago
  2. JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 11 months, 3 weeks ago
  3. Serializer factory with Django Rest Framework by julio 1 year, 6 months ago
  4. Image compression before saving the new model / work with JPG, PNG by Schleidens 1 year, 7 months ago
  5. Help text hyperlinks by sa2812 1 year, 7 months ago

Comments

woot4moo (on April 27, 2008):

I am going to save everyone a lot of heart ache here. Add these lines and that error will go away:

in create_inactive_user(...)

salt = sha.new(str(random.random())).hexdigest()[:5] activation_key = sha.new(salt+new_user.username).hexdigest()

and change profile_callback to this: if profile_callback is not None: profile_callback(user=new_user, activiation_key=activiation_key)

#

asinox (on September 3, 2009):

oliver.andrich is right.

#

Please login first before commenting.