It can be easily achieved by overriding create and write functions. for Example,
def create(self, cr, uid, vals, context=None):
if vals.get('name') and vals.get('email'):
vals.update({'email': vals.get('name') + ' <' + vals.get('email') + '>'})
return super(class_name, self).create(cr, uid, vals, context)
and write method
def write(self, cr, uid, ids, vals, context=None):
for rec in self.browse(cr, uid, ids, context):
if vals.get('name') or vals.get('email'):
vals.update({'email': vals.get('name') or rec.name + ' <' + vals.get('email') or rec.email + '>'})
return super(class_name, self).write(cr, uid, ids, vals, context)
Hope this helps.
Divya, you should create either a functonal field, or run an onchange method to combine them.