From 597b7575d62ce775f40533b68a33df6dd1be4995 Mon Sep 17 00:00:00 2001 From: johnnyq Date: Thu, 24 Aug 2023 13:23:03 -0400 Subject: [PATCH] Reworked mail settings to include all mail related thing to be in one spot and easy to understand Also updated test email to test email from each email from address configured --- post/setting.php | 63 +++++++++--------- settings_mail.php | 158 +++++++++++++++++++++++++++++++++++++++------- 2 files changed, 166 insertions(+), 55 deletions(-) diff --git a/post/setting.php b/post/setting.php index 6ee42e7b..5c83afe0 100644 --- a/post/setting.php +++ b/post/setting.php @@ -59,37 +59,9 @@ if (isset($_POST['edit_mail_smtp_settings'])) { $config_smtp_encryption = sanitizeInput($_POST['config_smtp_encryption']); $config_smtp_username = sanitizeInput($_POST['config_smtp_username']); $config_smtp_password = sanitizeInput($_POST['config_smtp_password']); - $config_mail_from_email = sanitizeInput($_POST['config_mail_from_email']); - $config_mail_from_name = sanitizeInput($_POST['config_mail_from_name']); mysqli_query($mysqli,"UPDATE settings SET config_smtp_host = '$config_smtp_host', config_smtp_port = $config_smtp_port, config_smtp_encryption = '$config_smtp_encryption', config_smtp_username = '$config_smtp_username', config_smtp_password = '$config_smtp_password', config_mail_from_email = '$config_mail_from_email', config_mail_from_name = '$config_mail_from_name' WHERE company_id = 1"); - - //Update From Email and From Name if Invoice/Quote or Ticket fields are blank - if (empty($config_invoice_from_name)) { - mysqli_query($mysqli,"UPDATE settings SET config_invoice_from_name = '$config_mail_from_name' WHERE company_id = 1"); - } - - if (empty($config_invoice_from_email)) { - mysqli_query($mysqli,"UPDATE settings SET config_invoice_from_email = '$config_mail_from_email' WHERE company_id = 1"); - } - - if (empty($config_quote_from_name)) { - mysqli_query($mysqli,"UPDATE settings SET config_quote_from_name = '$config_mail_from_name' WHERE company_id = 1"); - } - - if (empty($config_quote_from_email)) { - mysqli_query($mysqli,"UPDATE settings SET config_quote_from_email = '$config_mail_from_email' WHERE company_id = 1"); - } - - if (empty($config_ticket_from_name)) { - mysqli_query($mysqli,"UPDATE settings SET config_ticket_from_name = '$config_mail_from_name' WHERE company_id = 1"); - } - - if (empty($config_ticket_from_email)) { - mysqli_query($mysqli,"UPDATE settings SET config_ticket_from_email = '$config_mail_from_email' WHERE company_id = 1"); - } - // Logging mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Settings', log_action = 'Modify', log_description = '$session_name modified SMTP mail settings', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id"); @@ -121,17 +93,44 @@ if (isset($_POST['edit_mail_imap_settings'])) { } -if (isset($_POST['test_email_smtp'])) { +if (isset($_POST['edit_mail_from_settings'])) { validateAdminRole(); - $email = sanitizeInput($_POST['email']); + $config_mail_from_email = sanitizeInput($_POST['config_mail_from_email']); + $config_mail_from_name = sanitizeInput($_POST['config_mail_from_name']); + + $config_invoice_from_email = sanitizeInput($_POST['config_invoice_from_email']); + $config_invoice_from_name = sanitizeInput($_POST['config_invoice_from_name']); + + $config_quote_from_email = sanitizeInput($_POST['config_quote_from_email']); + $config_quote_from_name = sanitizeInput($_POST['config_quote_from_name']); + + $config_ticket_from_email = sanitizeInput($_POST['config_ticket_from_email']); + $config_ticket_from_name = sanitizeInput($_POST['config_ticket_from_name']); + + mysqli_query($mysqli,"UPDATE settings SET config_mail_from_email = '$config_mail_from_email', config_mail_from_name = '$config_mail_from_name', config_invoice_from_email = '$config_invoice_from_email', config_invoice_from_name = '$config_invoice_from_name', config_quote_from_email = '$config_quote_from_email', config_quote_from_name = '$config_quote_from_name', config_ticket_from_email = '$config_ticket_from_email', config_ticket_from_name = '$config_ticket_from_name' WHERE company_id = 1"); + + // Logging + mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Settings', log_action = 'Modify', log_description = '$session_name modified Mail From settings', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id"); + + $_SESSION['alert_message'] = "Mail From Settings updated"; + + header("Location: " . $_SERVER["HTTP_REFERER"]); + +} + +if (isset($_POST['test_email_smtp'])) { + + validateAdminRole(); + $email_from = sanitizeInput($_POST['email_from']); + $email_to = sanitizeInput($_POST['email_to']); $subject = "Hi'ya there Chap"; $body = "Hello there Chap ;) Don't worry this won't hurt a bit, it's just a test"; $mail = sendSingleEmail($config_smtp_host, $config_smtp_username, $config_smtp_password, $config_smtp_encryption, $config_smtp_port, - $config_mail_from_email, $config_mail_from_name, - $email, $email, + $email_from, $config_mail_from_name, + $email_to, $email_to, $subject, $body); if ($mail === true) { diff --git a/settings_mail.php b/settings_mail.php index 859c81dc..199d4c4f 100644 --- a/settings_mail.php +++ b/settings_mail.php @@ -3,7 +3,7 @@ require_once("inc_all_settings.php"); ?>
-

SMTP Mail Settings

+

SMTP Mail Settings (For Sending Email)

@@ -65,26 +65,6 @@ require_once("inc_all_settings.php"); ?>
-
- -
-
- -
- -
-
- -
- -
-
- -
- -
-
-
@@ -95,7 +75,7 @@ require_once("inc_all_settings.php"); ?>
-

IMAP Mail Settings

+

IMAP Mail Settings (For Monitoring Ticket Inbox)

@@ -167,6 +147,112 @@ require_once("inc_all_settings.php"); ?>
+
+
+

Mail From Configuration

+
+
+ +

Each of the "From Email" Addresses need to be able to send email on behalf of the SMTP user configured above +

Generic

+

(used for system tasks such as sending share links)

+
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +

Invoices

+

(used for when invoice emails are sent)

+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +

Quotes

+

(used for when quote emails are sent)

+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +

Tickets

+

(used for when tickets are created and emailed to a client)

+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+ +
+ + + + +
+
+
@@ -176,7 +262,33 @@ require_once("inc_all_settings.php"); ?>
- + +