The user table column you are searching for is user_email
$emails = new WP_User_Query( array(
'fields' => array( 'display_name', 'user_email', ), // you don't want everything, right?
'orderby' => 'email', // 'user_email' works as well
'order' => 'ASC', // default: 'DESC'
'number' => 10, // total amount of users to return
'offset' => 0, // use in combination with 'number' to page results
'search' => '*@*',
'search_columns' => 'user_email',
'blog_id' => get_current_blog_id(), // Multisite needs that, allows cross site search
'role' => 'subscriber', // in case you want to exclude admins, etc.
'exclude' => array( 1, ), // Blacklist user IDs
) );
Then there’s the filter pre_user_query
that you can use to get the whole class back. You can also use it to debug your query:
<?php /* Plugin Name: Debug User Query */
add_filter( 'pre_user_query', function( &$query )
{
var_dump( $GLOBALS['wp_query']->last_query );
return $query;
} );