diff options
| author | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2008-12-18 10:15:39 +0000 |
|---|---|---|
| committer | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2008-12-18 10:15:39 +0000 |
| commit | b4ca221b5ab95289ef6ea3d87498b620991062b4 (patch) | |
| tree | 7a71fb8b511122402e0d9ae9b232369f5c30f9db /roundcubemail/program/lib/Net | |
| parent | d12fbc5dd66a6fb7c6e1f7345edaab3018693ba7 (diff) | |
- Fix STARTTLS before AUTH in SMTP connection (#1484883)
git-svn-id: https://svn.roundcube.net/trunk@2170 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'roundcubemail/program/lib/Net')
| -rw-r--r-- | roundcubemail/program/lib/Net/SMTP.php | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/roundcubemail/program/lib/Net/SMTP.php b/roundcubemail/program/lib/Net/SMTP.php index 005691d56..b9ad4b2e8 100644 --- a/roundcubemail/program/lib/Net/SMTP.php +++ b/roundcubemail/program/lib/Net/SMTP.php @@ -375,7 +375,7 @@ class Net_SMTP return true; } - +console($this->_arguments); foreach ($this->_arguments as $argument) { $verb = strtok($argument, ' '); $arguments = substr($argument, strlen($verb) + 1, @@ -424,11 +424,8 @@ class Net_SMTP */ function auth($uid, $pwd , $method = '') { - if (empty($this->_esmtp['AUTH'])) { - if (version_compare(PHP_VERSION, '5.1.0', '>=')) { - if (!isset($this->_esmtp['STARTTLS'])) { - return PEAR::raiseError('SMTP server does not support authentication'); - } + if (version_compare(PHP_VERSION, '5.1.0', '>=') && isset($this->_esmtp['STARTTLS'])) { + if (PEAR::isError($result = $this->_put('STARTTLS'))) { return $result; } @@ -444,12 +441,10 @@ class Net_SMTP /* Send EHLO again to recieve the AUTH string from the * SMTP server. */ $this->_negotiate(); - if (empty($this->_esmtp['AUTH'])) { - return PEAR::raiseError('SMTP server does not support authentication'); - } - } else { - return PEAR::raiseError('SMTP server does not support authentication'); - } + } + + if (empty($this->_esmtp['AUTH'])) { + return PEAR::raiseError('SMTP server does not support authentication'); } /* If no method has been specified, get the name of the best |
