diff --git a/webui/model/search/search.php b/webui/model/search/search.php index 20622271..9ec11173 100644 --- a/webui/model/search/search.php +++ b/webui/model/search/search.php @@ -843,6 +843,10 @@ class ModelSearchSearch extends Model { public function fix_email_address_for_sphinx($email = '') { + if(strlen($email) > MAX_EMAIL_LEN) { + return md5($email . ' '); + } + $email = preg_replace("/\|@/", "|", $email); return preg_replace("/[\@\.\+\-\_]/", "X", $email); } diff --git a/webui/system/misc.php b/webui/system/misc.php index b6192ab8..5b459554 100644 --- a/webui/system/misc.php +++ b/webui/system/misc.php @@ -147,16 +147,6 @@ function checkemail($email, $domains) { function validemail($email = '') { if($email == '') { return 0; } - // sphinxsearch supports tokens up to 41 characters long - // If there's a longer token in the query, then sphinx - // reports a query error even if the query is itself correct - // So the workaround is to get rid of these email addresses - if(strlen($email) > MAX_EMAIL_LEN) { - $msg = sprintf("discarding email %s: longer than %d", $email, MAX_EMAIL_LEN); - syslog(LOG_INFO, $msg); - return 0; - } - if(preg_match("/@local$/", $email)) { return 1; } if(preg_match('/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,10})$/', $email)) {