Look here: http://code.google.com/p/web2py/source/browse/gluon/tools.py#327
This is inside the Mail.send method: if not isinstance(self.settings.server, str): raise Exception('Server address not specified') it refers as *self.settings.server.* In Python 'self' is the convention to refer the instance of a class So, when having an instance of Mail class from gluon.tools import Mail > mail = Mail() # here we create the instance of Mail class Now you do not have to use 'self' you have to use your instance to refer to the instance attributes.. mail.settings.server = 'gae'