diff --git a/htdocs/core/class/smtps.class.php b/htdocs/core/class/smtps.class.php index b845f799bb6..e8016b4bcfc 100644 --- a/htdocs/core/class/smtps.class.php +++ b/htdocs/core/class/smtps.class.php @@ -498,15 +498,24 @@ class SMTPs } // Send Authentication to Server // Check for errors along the way - $this->socket_send_str('AUTH LOGIN', '334'); - - // User name will not return any error, server will take anything we give it. - $this->socket_send_str(base64_encode($this->_smtpsID), '334'); - - // The error here just means the ID/password combo doesn't work. - // There is not a method to determine which is the problem, ID or password - if ( ! $_retVal = $this->socket_send_str(base64_encode($this->_smtpsPW), '235') ) - $this->_setErr(130, 'Invalid Authentication Credentials.'); + switch ($conf->global->MAIL_SMTP_AUTH_TYPE) { + case 'PLAIN': + $this->socket_send_str('AUTH PLAIN', '334'); + // The error here just means the ID/password combo doesn't work. + $_retVal = $this->socket_send_str(base64_encode("\0" . $this->_smtpsID . "\0" . $this->_smtpsPW), '235'); + break; + case 'LOGIN': + default: + $this->socket_send_str('AUTH LOGIN', '334'); + // User name will not return any error, server will take anything we give it. + $this->socket_send_str(base64_encode($this->_smtpsID), '334'); + // The error here just means the ID/password combo doesn't work. + // There is not a method to determine which is the problem, ID or password + $_retVal = $this->socket_send_str(base64_encode($this->_smtpsPW), '235'); + break; + } + if(!$_retVal) + $this->_setErr(130, 'Invalid Authentication Credentials.'); } else {