There are two parts to this, the first to ensure that you're getting the e-mail addresses in AD into the user property store in SharePoint and the second to sort out the correct query to return the users you want.
By default the WorkEmail user property is mapped to the proxyAddresses field in AD. This corresponds to the 'alternate e-mail address' field which can be set using ADSIEdit or PowerShell. If you don't populate that field in AD, you'll need to remap the field in SharePoint to the more commonly used 'mail' attribute. Check whether your user profiles in SharePoint have work e-mail address populated before making the changes to the mapping. To change the mapping:
- In your user profile service application, select 'manage user properties'.
- Locate the 'Work email' field under the 'Contact Information' category. Click this field and select 'edit' from the menu shown.
- Near the bottom of the user profile property page, locate 'Property Mapping for Synchronization'. You'll notice that proxyAddresses is currently mapped.
- Remove this mapping by clicking the 'Remove' button.
- Add 'mail' as a new mapping by selecting this from the Attribute field in the 'Add New Mapping' section, then click 'Add'.
- Ensure that the mapping now looks like this:

- Click OK to save the new mapping.
You should now trigger a full user profile synchronisation to ensure that e-mail addresses are synchronised. Check that work e-mail fields are now populated with the values in AD.
Searching for users using the '@' doesn't seem to work. Queries based on just this term return no results.
In essence, we're looking for a person whose work e-mail is not empty, so we can use the following (albeit rather ungainly) query to return this:
contentclass=spspeople (WorkEmail:a* OR WorkEmail:b* OR WorkEmail:c* OR WorkEmail:d* OR WorkEmail:e* OR WorkEmail:f* OR WorkEmail:g* OR WorkEmail:h* OR WorkEmail:i* OR WorkEmail:j* OR WorkEmail:k* OR WorkEmail:l* OR WorkEmail:m* OR WorkEmail:n* OR WorkEmail:o* OR WorkEmail:p* OR WorkEmail:q* OR WorkEmail:r* OR WorkEmail:s* OR WorkEmail:t* OR WorkEmail:u* OR WorkEmail:v* OR WorkEmail:w* OR WorkEmail:x* OR WorkEmail:y* OR WorkEmail:z* OR WorkEmail:0* OR WorkEmail:1* OR WorkEmail:2* OR WorkEmail:3* OR WorkEmail:4* OR WorkEmail:5* OR WorkEmail:6* OR WorkEmail:7* OR WorkEmail:8* OR WorkEmail:9*)
In my lab, there are three users (out of about 10) with e-mail addresses specified, which returns the following results when the query is tested:
