summaryrefslogtreecommitdiff
path: root/program/include/rcube_smtp.inc
diff options
context:
space:
mode:
Diffstat (limited to 'program/include/rcube_smtp.inc')
-rw-r--r--program/include/rcube_smtp.inc16
1 files changed, 15 insertions, 1 deletions
diff --git a/program/include/rcube_smtp.inc b/program/include/rcube_smtp.inc
index e5691759c..e4aea09d2 100644
--- a/program/include/rcube_smtp.inc
+++ b/program/include/rcube_smtp.inc
@@ -53,12 +53,26 @@ function smtp_mail($from, $recipients, $headers, &$body)
{
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');
+ $SMTP_CONN = new Net_SMTP($smtp_host, $smtp_port, 'localhost');
// set debugging
if ($CONFIG['debug_level'] & 8)