From 72cd3c1a761fad73235cad32f240a114ba2941aa Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Tue, 07 Jul 2009 04:36:42 -0400
Subject: [PATCH] - Support %h variable in 'smtp_server' option (#1485766)

---
 CHANGELOG                      |    1 +
 program/include/rcube_smtp.inc |    6 +++---
 program/lib/imap.inc           |    5 +++--
 config/main.inc.php.dist       |    1 +
 4 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 2e94ea3..869651f 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG RoundCube Webmail
 ===========================
 
+- Support %h variable in 'smtp_server' option (#1485766)
 - Show SMTP errors in browser (#1485927)
 - Allow WBR tag in HTML message (#1485960)
 - Use spl_autoload_register() instead of __autoload (#1485947)
diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist
index f5e4c7c..b456db9 100644
--- a/config/main.inc.php.dist
+++ b/config/main.inc.php.dist
@@ -98,6 +98,7 @@
 // use this host for sending mails.
 // to use SSL connection, set ssl://smtp.host.com
 // if left blank, the PHP mail() function is used
+// Use %h variable as replacement for user's IMAP hostname
 $rcmail_config['smtp_server'] = '';
 
 // SMTP port (default is 25; 465 for SSL)
diff --git a/program/include/rcube_smtp.inc b/program/include/rcube_smtp.inc
index 066e5ed..db681af 100644
--- a/program/include/rcube_smtp.inc
+++ b/program/include/rcube_smtp.inc
@@ -64,10 +64,10 @@
   ));
 
   $smtp_timeout = null;
-  $smtp_host = $CONFIG['smtp_server'];
+  $smtp_host = str_replace('%h', $_SESSION['imap_host'], $CONFIG['smtp_server']);
   $smtp_port = is_numeric($CONFIG['smtp_port']) ? $CONFIG['smtp_port'] : 25;
-  $smtp_host_url = parse_url($CONFIG['smtp_server']);
-  
+  $smtp_host_url = parse_url($smtp_host);
+
   // overwrite port
   if (isset($smtp_host_url['host']) && isset($smtp_host_url['port']))
     {
diff --git a/program/lib/imap.inc b/program/lib/imap.inc
index c6b5000..7b40c02 100644
--- a/program/lib/imap.inc
+++ b/program/lib/imap.inc
@@ -260,7 +260,6 @@
 		}
 
 		$line = $a[1][0] . '"' . ($escape ? iil_Escape($out) : $out) . '"';
-//		console('[...] '. $out);
 	}
 	return $line;
 }
@@ -269,10 +268,12 @@
 	$data = '';
 	$len  = 0;
 	do {
-    		$data .= fread($fp, $bytes-$len);
+		$d = fread($fp, $bytes-$len);
+                $data .= $d;
 		if ($len == strlen($data)) {
     		        break; //nothing was read -> exit to avoid apache lockups
     		}
+//		console('[...] '. $d);
     		$len = strlen($data);
 	} while ($len < $bytes);
 	

--
Gitblit v1.9.1