Modified Deliver_SMTP to use HTTP_HOST in SMTP HELO commands.
authortassium <tassium@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Wed, 15 Jan 2003 14:38:35 +0000 (14:38 +0000)
committertassium <tassium@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Wed, 15 Jan 2003 14:38:35 +0000 (14:38 +0000)
If HTTP_HOST is not set, fall back to original SquirrelMail behavior. (Use $domain)
Should close #560524 (SMTP DNS resolution)

git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@4422 7612ce4b-ef26-0410-bec9-ea0150e637f0

ChangeLog
class/deliver/Deliver_SMTP.class.php

index 0094614cafdf6f41cba9425ffdce04ec57da72ff..06b7f24011fa55272f9d5adec6654b8eaa5baccf 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -26,6 +26,8 @@ Version 1.4.0 RC 2
   - Move login_form hook to be actually in the login form.
   - Fix message_details plugin ability to save a raw message.
   - Try better to get the filename of an attachment.
+  - Deliver_SMTP class now uses HTTP_HOST in SMTP HELO.  Should fix DNS
+    issues some people have reported. (Closes #560524)
        
 Version 1.4.0 RC 1
 ------------------
index 7e04fed07d07f2fa6b5f8965345b58a6851e1019..546d612c4a6832bf672819874a1caa7b45d5de00 100644 (file)
@@ -49,11 +49,19 @@ class Deliver_SMTP extends Deliver {
        if ($this->errorCheck($tmp, $stream)) {
            return(0);
        }
-    
+
+       /* If $_SERVER['HTTP_HOST'] is set, use that in our HELO to the SMTP
+          server.  This should fix the DNS issues some people have had */
+       if (sqgetGlobalVar('HTTP_HOST', $HTTP_HOST, SQ_SERVER)) { // HTTP_HOST is set
+               $helohost = $HTTP_HOST;
+       } else { // For some reason, HTTP_HOST is not set - revert to old behavior
+               $helohost = $domain;
+       }
+       
        /* Lets introduce ourselves */
        if (( $smtp_auth_mech == 'cram-md5') or ( $smtp_auth_mech == 'digest-md5' )) {
          // Doing some form of non-plain auth
-         fputs($stream, "EHLO $domain\r\n");
+         fputs($stream, "EHLO $helohost\r\n");
          $tmp = fgets($stream,1024);
          if ($this->errorCheck($tmp,$stream)) {
            return(0);
@@ -99,14 +107,14 @@ class Deliver_SMTP extends Deliver {
     // CRAM-MD5 and DIGEST-MD5 code ends here
        } elseif ($smtp_auth_mech == 'none') {
          // No auth at all, just send helo and then send the mail
-         fputs($stream, "HELO $domain\r\n");
+         fputs($stream, "HELO $helohost\r\n");
       $tmp = fgets($stream, 1024);
          if ($this->errorCheck($tmp, $stream)) {
         return(0);
          }
        } elseif ($smtp_auth_mech == 'login') {
          // The LOGIN method
-      fputs($stream, "EHLO $domain\r\n");
+      fputs($stream, "EHLO $helohost\r\n");
       $tmp = fgets($stream, 1024);
          if ($this->errorCheck($tmp, $stream)) {
        return(0);