From c9d09bbe43f268c11cadc9846652ff33521edf6c Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Wed, 25 Jan 2006 15:10:12 -0500
Subject: [PATCH] Updated localizations

---
 program/include/rcube_smtp.inc |   27 +++++++++++++++++++++------
 1 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/program/include/rcube_smtp.inc b/program/include/rcube_smtp.inc
index e569175..56a4e98 100644
--- a/program/include/rcube_smtp.inc
+++ b/program/include/rcube_smtp.inc
@@ -53,12 +53,27 @@
   {
   global $SMTP_CONN, $CONFIG, $SMTP_ERROR;
   $smtp_timeout = null;
+  $smtp_host = $CONFIG['smtp_server'];
   $smtp_port = is_numeric($CONFIG['smtp_port']) ? $CONFIG['smtp_port'] : 25;
+  $smtp_host_url = parse_url($CONFIG['smtp_server']);
   
+  // overwrite port
+  if ($smtp_host_url['host'] && $smtp_host_url['port'])
+    {
+    $smtp_host = $smtp_host_url['host'];
+    $smtp_port = $smtp_host_url['port'];
+    }
+
+  // re-write smtp host
+  if ($smtp_host_url['host'] && $smtp_host_url['scheme'])
+    $smtp_host = sprintf('%s://%s', $smtp_host_url['scheme'], $smtp_host_url['host']);
+
+
   // create Net_SMTP object and connect to server
   if (!is_object($smtp_conn))
     {
-    $SMTP_CONN = new Net_SMTP($CONFIG['smtp_server'], $smtp_port, 'localhost');
+    $helo_host = !empty($_SERVER['server_name']) ? $_SERVER['server_name'] : 'localhost';
+    $SMTP_CONN = new Net_SMTP($smtp_host, $smtp_port, $helo_host);
 
     // set debugging
     if ($CONFIG['debug_level'] & 8)
@@ -76,13 +91,13 @@
     // attempt to authenticate to the SMTP server
     if ($CONFIG['smtp_user'] && $CONFIG['smtp_pass'])
       {
-      if ($CONFIG['smtp_user'] == '%u')
-		$smtp_user = $_SESSION['username'];
+      if (strstr($CONFIG['smtp_user'], '%u'))
+		$smtp_user = str_replace('%u', $_SESSION['username'], $CONFIG['smtp_user']);
       else
 		$smtp_user = $CONFIG['smtp_user'];
-	
-	  if ($CONFIG['smtp_pass'] == '%p')
-		$smtp_pass = decrypt_passwd($_SESSION['password']);
+
+	  if (strstr($CONFIG['smtp_pass'], '%p'))
+		$smtp_pass = str_replace('%p', decrypt_passwd($_SESSION['password']), $CONFIG['smtp_pass']);
       else
 		$smtp_pass = $CONFIG['smtp_pass'];
 

--
Gitblit v1.9.1