diff --git a/email_verify.inc b/email_verify.inc index 03611f13806c89ac45411b7e8386639bc855169f..5069c0c1003046be28f6780787b77c6262d3f822 100644 --- a/email_verify.inc +++ b/email_verify.inc @@ -429,7 +429,21 @@ function _email_verify_check_internal($mail, $debugging_mode, $debugging_text, $ ); } - if (preg_match("/^220/", $connect_result = fgets($connect, 1024))) { + // Read all greeting lines until we get a complete response + $connect_result = ''; + do { + $line = _email_verify_read_line($connect, $debugging_mode, $debugging_text, $date_time_format); + $connect_result .= $line['line']; + } while ($line['next_char'] == '-'); + + if ($debugging_mode) { + $debugging_text[] = t( + 'Complete greeting from server: %greeting (!date_time)', + array('%greeting' => $connect_result, '!date_time' => format_date(time(), $date_time_format)) + ); + } + + if (preg_match("/^220[-\s]/m", $connect_result)) { // An SMTP connection was made. if ($debugging_mode) { $debugging_text[] = t(