How you want the email to appear affects what code you would use. If a raw data dump is adequate, something like this might work (on your page template):
$args = array( /*Your custom query args here*/ );
$query = new WP_Query( $args );
wp_mail( '[email protected]', 'Query Result', print_r( $query, true ));
If all you wanted was the posts found, not the entire query object, print_r $query->posts
instead of just $query
.
If you want the email to look more like a webpage, you could collect the output from the loop using PHP’s output buffer, then email the buffer content. For this to work the content will need all applicable CSS included in a style block, the usual external CSS will not come through in emails.
You also need to set the MIME type to ‘text/html’ with the ‘wp_mail_content_type’ filter for the email to appear like a webpage.
You might want to add a conditional to send the email only when the current user is yourself, or else you’ll get email anytime anyone requests the page, including search bots.