From d206c1f4d798068623b0451d427f4ed5769ebb4b Mon Sep 17 00:00:00 2001
From: svncommit <devs@roundcube.net>
Date: Fri, 14 Oct 2005 06:57:02 -0400
Subject: [PATCH] 

---
 program/include/rcube_smtp.inc |   17 ++++++++++++++---
 config/main.inc.php.dist       |   10 ++++++++--
 2 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist
index 03e00b2..351e4b8 100644
--- a/config/main.inc.php.dist
+++ b/config/main.inc.php.dist
@@ -42,12 +42,18 @@
 // SMTP port (default is 25)
 $rcmail_config['smtp_port'] = 25;
 
-// SMTP username (if required)
+// SMTP username (if required) if you use %u as the username RoundCube
+// will use the current username for login
 $rcmail_config['smtp_user'] = '';
 
-// SMTP password (if required)
+// SMTP password (if required) if you use %p as the password RoundCube
+// will use the current user's password for login
 $rcmail_config['smtp_pass'] = '';
 
+// SMTP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or empty to use
+// best server supported one)
+$rcmail_config['smtp_auth_type'] = '';
+
 // Log sent messages
 $rcmail_config['smtp_log'] = TRUE;
 
diff --git a/program/include/rcube_smtp.inc b/program/include/rcube_smtp.inc
index fd45a00..bc20463 100644
--- a/program/include/rcube_smtp.inc
+++ b/program/include/rcube_smtp.inc
@@ -72,12 +72,23 @@
       $SMTP_ERROR .= "Connection failed\n";
       return FALSE;
       }
-
-
+      
     // attempt to authenticate to the SMTP server
     if ($CONFIG['smtp_user'] && $CONFIG['smtp_pass'])
       {
-      if (PEAR::isError($SMTP_CONN->auth($CONFIG['smtp_user'], $CONFIG['smtp_pass'])))
+      if ($CONFIG['smtp_user'] == '%u')
+		$smtp_user = $_SESSION['username'];
+      else
+		$smtp_user = $CONFIG['smtp_user'];
+	
+	  if ($CONFIG['smtp_pass'] == '%p')
+		$smtp_pass = decrypt_passwd($_SESSION['password']);
+      else
+		$smtp_pass = $CONFIG['smtp_pass'];
+
+	  $smtp_auth_type = smpty($CONFIG['smtp_auth_type']) ? NULL : $CONFIG['smtp_auth_type'];
+	  	
+      if (PEAR::isError($SMTP_CONN->auth($smtp_user, $smtp_pass, $smtp_auth_type)))
         {
         smtp_reset();
         $SMTP_ERROR .= "authentication failure\n";

--
Gitblit v1.9.1