Here is what I do have in *db.py* already:
mail=auth.settings.mailer
mail.settings.server = settings.email_server
are already set up from 0.py where I have:
settings.email_server = 'gae'
so they are already set up.
Please not again that on GAE logs I have this
information which is referring to *settings.server,*
not *mail.settings.server*
The line 327-328 in gluon/tools.py: is looking for *settings.server.* if
not isinstance(self.*settings.server*, str):
raise Exception('Server address not specified')
==============================
db.define_table('auth_user',
Field('username', type='string',
label=T('Username')),
Field('first_name', type='string',
label=T('First Name')),
Field('last_name', type='string',
label=T('Last Name')),
Field('email', type='string',
label=T('Email')),
Field('password', type='password',
readable=False,
label=T('Password')),
Field('created_on','datetime',default=request.now,
label=T('Created On'),writable=False,readable=False),
Field('modified_on','datetime',default=request.now,
label=T('Modified On'),writable=False,readable=False,
update=request.now),
Field('registration_key',default='',
writable=False,readable=False),
Field('reset_password_key',default='',
writable=False,readable=False),
Field('registration_id',default='',
writable=False,readable=False),
format='%(username)s',
migrate=settings.migrate)
db.auth_user.first_name.requires =
IS_NOT_EMPTY(error_message=auth.messages.is_empty)
db.auth_user.last_name.requires =
IS_NOT_EMPTY(error_message=auth.messages.is_empty)
db.auth_user.password.requires = CRYPT(key=auth.settings.hmac_key)
db.auth_user.username.requires = IS_NOT_IN_DB(db, db.auth_user.username)
db.auth_user.registration_id.requires = IS_NOT_IN_DB(db,
db.auth_user.registration_id)
db.auth_user.email.requires =
(IS_EMAIL(error_message=auth.messages.invalid_email),
IS_NOT_IN_DB(db, db.auth_user.email))
auth.define_tables(migrate = settings.migrate)
## configure email
mail=auth.settings.mailer
mail.settings.server = settings.email_server
mail.settings.sender = settings.email_sender
mail.settings.login = settings.email_login
## configure auth policy
auth.settings.registration_requires_verification = False
auth.settings.registration_requires_approval = False
auth.settings.reset_password_requires_verification = True
#auth.settings.login_next = URL('index')
auth.settings.login_next = '/'
#auth.settings.logout_next = URL('index')
auth.settings.logout_next = '/'
#auth.settings.profile_next = URL('index')
auth.settings.profile_next = '/'
#auth.settings.register_next = URL('user', args='login')
auth.settings.register_next = '/'
#auth.settings.retrieve_username_next = URL('index')
auth.settings.retrieve_username_next = '/'
#auth.settings.retrieve_password_next = URL('index')
auth.settings.retrieve_password_next = '/'
#auth.settings.change_password_next = URL('index')
auth.settings.change_password_next = '/'
#auth.settings.request_reset_password_next = URL('user', args='login')
auth.settings.request_reset_password_next = '/'
#auth.settings.reset_password_next = URL('user', args='login')
auth.settings.reset_password_next = '/'
#auth.settings.verify_email_next = URL('user', args='login')
auth.settings.verify_email_next = '/'