Patch to support sendmail, qmail, mail.

Also allow port to be set without munging host string (easier to change from 25/465/custom/etc).
This commit is contained in:
Harry G. Coin
2016-04-25 20:58:28 -05:00
parent 077059eeb1
commit 8f17c47071
2 changed files with 30 additions and 3 deletions
+14
View File
@@ -86,6 +86,20 @@ if ($domains_processed == 1) {
$array[$x]['default_setting_description'] = ''; $array[$x]['default_setting_description'] = '';
$x++; $x++;
$array[$x]['default_setting_category'] = 'email'; $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_subcategory'] = 'smtp_from';
$array[$x]['default_setting_name'] = 'var'; $array[$x]['default_setting_name'] = 'var';
$array[$x]['default_setting_value'] = ''; $array[$x]['default_setting_value'] = '';
+16 -3
View File
@@ -135,6 +135,11 @@
//prepare smtp server settings //prepare smtp server settings
// load default smtp settings // load default smtp settings
$smtp['host'] = (strlen($_SESSION['email']['smtp_host']['var'])?$_SESSION['email']['smtp_host']['var']:'127.0.0.1'); $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['secure'] = $_SESSION['email']['smtp_secure']['var'];
$smtp['auth'] = $_SESSION['email']['smtp_auth']['var']; $smtp['auth'] = $_SESSION['email']['smtp_auth']['var'];
$smtp['username'] = $_SESSION['email']['smtp_username']['var']; $smtp['username'] = $_SESSION['email']['smtp_username']['var'];
@@ -164,7 +169,7 @@
} }
// value adjustments // 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['password'] = ($smtp['password'] != '') ? $smtp['password'] : null;
$smtp['secure'] = ($smtp['secure'] != "none") ? $smtp['secure'] : null; $smtp['secure'] = ($smtp['secure'] != "none") ? $smtp['secure'] : null;
$smtp['username'] = ($smtp['username'] != '') ? $smtp['username'] : null; $smtp['username'] = ($smtp['username'] != '') ? $smtp['username'] : null;
@@ -173,13 +178,21 @@
include "resources/phpmailer/class.phpmailer.php"; include "resources/phpmailer/class.phpmailer.php";
include "resources/phpmailer/class.smtp.php"; include "resources/phpmailer/class.smtp.php";
$mail = new PHPMailer(); $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->SMTPAuth = $smtp['auth'];
$mail->Host = $smtp['host']; $mail->Host = $smtp['host'];
if ($smtp['port']!=0) $mail->Port=$smtp['port'];
if ($smtp['secure'] != '') { if ($smtp['secure'] != '') {
$mail->SMTPSecure = $smtp['secure']; $mail->SMTPSecure = $smtp['secure'];
} }
if ($smtp['auth'] == 'true') { if ($smtp['auth']) {
$mail->Username = $smtp['username']; $mail->Username = $smtp['username'];
$mail->Password = $smtp['password']; $mail->Password = $smtp['password'];
} }