There are situations where one page contains multiple post queries(function query_posts) for different conditions(parent categories, tags, etc.), and some of post queries have custom filters(added by add_filter function). Next query_posts call will keep this custom filters, and that could make totaly unespected posts results. Before execute next post query, please add this kind of code to remove previous custom filter, i.e.:

if (has_filter('posts_where', 'filter_date_range_future')) remove_filter( 'posts_where', 'filter_date_range_future');

 'filter_date_range_future' is example function:

function filter_date_range_future($where = '') {
  $where .= " AND post_date >= '" . date('Y-m-d') . "'";
  return $where;
}

This function check is value a valid email address:

public static bool IsEmailAddress(string email)
{   
   if(!email.Contains("@")) return false;
   string pattern = @"^(([^<>()[\]\\.,;:\s@\""]+"
                            + @"(\.[^<>()[\]\\.,;:\s@\""]+)*)|(\"".+\""))@"
                            + @"((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"
                            + @"\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+"
                            + @"[a-zA-Z]{2,}))$";
   
   Regex emailregex = new Regex(pattern);
   return emailregex.IsMatch(email);
}