From 8f17c4707102e8574d46675e7d2e75391b3fed1a Mon Sep 17 00:00:00 2001 From: "Harry G. Coin" Date: Mon, 25 Apr 2016 20:58:28 -0500 Subject: [PATCH] Patch to support sendmail, qmail, mail. Also allow port to be set without munging host string (easier to change from 25/465/custom/etc). --- core/default_settings/app_defaults.php | 14 ++++++++++++++ secure/v_mailto.php | 19 ++++++++++++++++--- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/core/default_settings/app_defaults.php b/core/default_settings/app_defaults.php index 9e904342d3..d8d1223b01 100644 --- a/core/default_settings/app_defaults.php +++ b/core/default_settings/app_defaults.php @@ -86,6 +86,20 @@ if ($domains_processed == 1) { $array[$x]['default_setting_description'] = ''; $x++; $array[$x]['default_setting_category'] = 'email'; + $array[$x]['default_setting_subcategory'] = 'method'; + $array[$x]['default_setting_name'] = 'text'; + $array[$x]['default_setting_value'] = 'smtp'; + $array[$x]['default_setting_enabled'] = 'false'; + $array[$x]['default_setting_description'] = 'smtp|sendmail|mail|qmail'; + $x++; + $array[$x]['default_setting_category'] = 'email'; + $array[$x]['default_setting_subcategory'] = 'smtp_port'; + $array[$x]['default_setting_name'] = 'numeric'; + $array[$x]['default_setting_value'] = '0'; + $array[$x]['default_setting_enabled'] = 'false'; + $array[$x]['default_setting_description'] = 'use non-default port if enabled and non-zero'; + $x++; + $array[$x]['default_setting_category'] = 'email'; $array[$x]['default_setting_subcategory'] = 'smtp_from'; $array[$x]['default_setting_name'] = 'var'; $array[$x]['default_setting_value'] = ''; diff --git a/secure/v_mailto.php b/secure/v_mailto.php index 07fab4805c..c59375d184 100644 --- a/secure/v_mailto.php +++ b/secure/v_mailto.php @@ -135,6 +135,11 @@ //prepare smtp server settings // load default smtp settings $smtp['host'] = (strlen($_SESSION['email']['smtp_host']['var'])?$_SESSION['email']['smtp_host']['var']:'127.0.0.1'); + if (isset($_SESSION['email']['smtp_port'])) { + $smtp['port'] = (int)$_SESSION['email']['smtp_port']['numeric']; + } else { + $smtp['port'] = 0; + } $smtp['secure'] = $_SESSION['email']['smtp_secure']['var']; $smtp['auth'] = $_SESSION['email']['smtp_auth']['var']; $smtp['username'] = $_SESSION['email']['smtp_username']['var']; @@ -164,7 +169,7 @@ } // value adjustments - $smtp['auth'] = ($smtp['auth'] == "true") ? $smtp['auth'] : "false"; + $smtp['auth'] = ($smtp['auth'] == "true") ? true : false; $smtp['password'] = ($smtp['password'] != '') ? $smtp['password'] : null; $smtp['secure'] = ($smtp['secure'] != "none") ? $smtp['secure'] : null; $smtp['username'] = ($smtp['username'] != '') ? $smtp['username'] : null; @@ -173,13 +178,21 @@ include "resources/phpmailer/class.phpmailer.php"; include "resources/phpmailer/class.smtp.php"; $mail = new PHPMailer(); - $mail->IsSMTP(); + if (isset($_SESSION['email']['method'])) { + switch($_SESSION['email']['method']['text']) { + case 'sendmail': $mail->IsSendmail(); break; + case 'qmail': $mail->IsQmail(); break; + case 'mail': $mail->IsMail(); break; + default: $mail->IsSMTP(); break; + } + } else $mail->IsSMTP(); $mail->SMTPAuth = $smtp['auth']; $mail->Host = $smtp['host']; + if ($smtp['port']!=0) $mail->Port=$smtp['port']; if ($smtp['secure'] != '') { $mail->SMTPSecure = $smtp['secure']; } - if ($smtp['auth'] == 'true') { + if ($smtp['auth']) { $mail->Username = $smtp['username']; $mail->Password = $smtp['password']; }