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

View File

@@ -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'] = '';

View File

@@ -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'];
}