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(