protected function send_verification_email($user_id)
{
// @FIXME: Should the verification code expire?
$verification_code = $this->get_user_email_verification_code($user_id);
$user = new WP_User($user_id);
$hash = $this->create_check_hash($user_id, $verification_code, $user->user_email);
$hash = urlencode($hash);
$user_id = absint($user_id);
$verification_link = add_query_arg(array(self::GET_EMAIL_VERIFY => urlencode($hash), self::GET_EMAIL_USER_LOGIN => urlencode($user->user_login)), home_url());
$user = new WP_User($user_id);
$message = __('Dear Automattician,', 'vip-support');
$message .= PHP_EOL . PHP_EOL;
$message .= sprintf(__('You need to verify your Automattic email address for your user on %1$s (%2$s). If you are expecting this, please click the link below to verify your email address:', 'vip-support'), get_bloginfo('name'), home_url());
$message .= PHP_EOL;
$message .= esc_url_raw($verification_link);
$message .= PHP_EOL . PHP_EOL;
$message .= __('If you have any questions, please contact the WordPress.com VIP Support Team.');
$subject = sprintf(__('Email verification for %s', 'vip-support'), get_bloginfo('name'));
wp_mail($user->user_email, $subject, $message);
}