summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2010-10-22 19:16:45 +0000
committeralecpl <alec@alec.pl>2010-10-22 19:16:45 +0000
commit63d4d61148cdaac48973baea2ab783d3e965a9c2 (patch)
tree2f83b376fa03a68ac69b6aa6a9b4b85f35f089b2
parent7bf255bfe1e2fb573da7d1b107bc7cb7fef35198 (diff)
- Re-implemented SMTP proxy authorization support
-rw-r--r--CHANGELOG1
-rw-r--r--config/main.inc.php.dist7
-rw-r--r--program/include/rcube_smtp.php15
3 files changed, 14 insertions, 9 deletions
diff --git a/CHANGELOG b/CHANGELOG
index ca435bd09..edbbc33f1 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -44,6 +44,7 @@ CHANGELOG Roundcube Webmail
- Add SASL-IR support in IMAP (RFC 4959)
- Add LOGINDISABLED support (RFC 2595)
- Add support for AUTH=PLAIN in IMAP authentication
+- Re-implemented SMTP proxy authorization support
RELEASE 0.4.2
-------------
diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist
index 664251217..60a87f73c 100644
--- a/config/main.inc.php.dist
+++ b/config/main.inc.php.dist
@@ -117,8 +117,11 @@ $rcmail_config['smtp_pass'] = '';
// best server supported one)
$rcmail_config['smtp_auth_type'] = '';
-// Optional SMTP authorization identifier to be used as authorization proxy
-$rcmail_config['smtp_authzid'] = null;
+// Optional SMTP authentication identifier to be used as authorization proxy
+$rcmail_config['smtp_auth_cid'] = null;
+
+// Optional SMTP authorization password to be used for smtp_auth_cid
+$rcmail_config['smtp_auth_pw'] = null;
// SMTP HELO host
// Hostname to give to the remote server for SMTP 'HELO' or 'EHLO' messages
diff --git a/program/include/rcube_smtp.php b/program/include/rcube_smtp.php
index 6b25cd1c6..5d1d459e9 100644
--- a/program/include/rcube_smtp.php
+++ b/program/include/rcube_smtp.php
@@ -44,11 +44,10 @@ class rcube_smtp
* @param string Server port
* @param string User name
* @param string Password
- * @param string Optional authorization ID to be used as authorization proxy
*
* @return bool Returns true on success, or false on error
*/
- public function connect($host=null, $port=null, $user=null, $pass=null, $authz=null)
+ public function connect($host=null, $port=null, $user=null, $pass=null)
{
$RCMAIL = rcmail::get_instance();
@@ -64,7 +63,8 @@ class rcube_smtp
'smtp_port' => $port ? $port : $RCMAIL->config->get('smtp_port', 25),
'smtp_user' => $user ? $user : $RCMAIL->config->get('smtp_user'),
'smtp_pass' => $pass ? $pass : $RCMAIL->config->get('smtp_pass'),
- 'smtp_authzid' => $authz ? $authz : $RCMAIL->config->get('smtp_authzid'),
+ 'smtp_auth_cid' => $RCMAIL->config->get('smtp_auth_cid'),
+ 'smtp_auth_pw' => $RCMAIL->config->get('smtp_auth_pw'),
'smtp_auth_type' => $RCMAIL->config->get('smtp_auth_type'),
'smtp_helo_host' => $RCMAIL->config->get('smtp_helo_host'),
'smtp_timeout' => $RCMAIL->config->get('smtp_timeout'),
@@ -110,8 +110,8 @@ class rcube_smtp
// try to connect to server and exit on failure
$result = $this->conn->connect($smtp_timeout);
- if (PEAR::isError($result))
- {
+
+ if (PEAR::isError($result)) {
$this->response[] = "Connection failed: ".$result->getMessage();
$this->error = array('label' => 'smtpconnerror', 'vars' => array('code' => $this->conn->_code));
$this->conn = null;
@@ -122,9 +122,10 @@ class rcube_smtp
$smtp_pass = str_replace('%p', $RCMAIL->decrypt($_SESSION['password']), $CONFIG['smtp_pass']);
$smtp_auth_type = empty($CONFIG['smtp_auth_type']) ? NULL : $CONFIG['smtp_auth_type'];
- if (!empty($CONFIG['smtp_authzid'])) {
+ if (!empty($CONFIG['smtp_auth_cid'])) {
$smtp_authz = $smtp_user;
- $smtp_user = $CONFIG['smtp_authzid'];
+ $smtp_user = $CONFIG['smtp_auth_cid'];
+ $smtp_pass = $CONFIG['smtp_auth_pw'];
}
// attempt to authenticate to the SMTP server