It has been a long time since I've worked with Zend_Db and I cant really test the code, but you can try the following:
$query = $this->select()
->setIntegrityCheck(false)
->from(array('e' => 'emails'), array(
'Ouvert' => new Zend_Db_Expr('COUNT( * )'),
'FAI' => new Zend_Db_Expr("SUBSTRING_INDEX( emails.email_value, '@', -1 )"),
'track_open.open_date',
))
->join(array('to' => 'track_open'), 'e.email_id = to.email_id')
->where('emails.email_id = track_open.email_id')
->where('DATE( open_date ) = CURDATE( )')
->group(new Zend_Db_Expr("SUBSTRING_INDEX( emails.email_value, '@', -1 )"))