diff --git a/cron_mail_queue.php b/cron_mail_queue.php index 88d5fa6e..3ad0a436 100644 --- a/cron_mail_queue.php +++ b/cron_mail_queue.php @@ -94,7 +94,7 @@ if (mysqli_num_rows($sql_queue) > 0) { // Get Mail Queue that hasnt been sent yet // Email Status: 0 Queued, 1 Sending, 2 Failed, 3 Sent -$sql_failed_queue = mysqli_query($mysqli, "SELECT * FROM email_queue WHERE email_status = 2 AND email_attempts < 5 AND email_failed_at < NOW() + INTERVAL 30 MINUTE"); +$sql_failed_queue = mysqli_query($mysqli, "SELECT * FROM email_queue WHERE email_status = 2 AND email_attempts < 4 AND email_failed_at < NOW() + INTERVAL 30 MINUTE"); if (mysqli_num_rows($sql_failed_queue) > 0) { while ($row = mysqli_fetch_array($sql_failed_queue)) { diff --git a/post/setting.php b/post/setting.php index 10b6ef06..88382214 100644 --- a/post/setting.php +++ b/post/setting.php @@ -419,6 +419,23 @@ if (isset($_POST['edit_telemetry_settings'])) { } +if (isset($_GET['send_failed_mail'])) { + + validateAdminRole(); + + $email_id = intval($_GET['send_failed_mail']); + + mysqli_query($mysqli,"UPDATE email_queue SET email_attempts = 3 WHERE email_id = $email_id"); + + // Logging + mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Email', log_action = 'Send', log_description = '$session_name attempted to force send email queue id: $email_id', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id"); + + $_SESSION['alert_message'] = "Email Force Sent, give it a minute to resend"; + + header("Location: " . $_SERVER["HTTP_REFERER"]); + +} + if (isset($_POST['send_telemetry_data'])) { validateAdminRole(); diff --git a/settings_mail_queue.php b/settings_mail_queue.php index 05e2e0be..327ba305 100644 --- a/settings_mail_queue.php +++ b/settings_mail_queue.php @@ -18,7 +18,7 @@ $url_query_strings_sort = http_build_query($get_copy); $sql = mysqli_query( $mysqli, "SELECT SQL_CALC_FOUND_ROWS * FROM email_queue - WHERE (email_from LIKE '%$q%' OR email_from_name LIKE '%$q%' OR email_recipient LIKE '%$q%' OR email_recipient_name LIKE '%$q%' OR email_subject LIKE '%$q%') + WHERE (email_id LIKE '%$q%' OR email_from LIKE '%$q%' OR email_from_name LIKE '%$q%' OR email_recipient LIKE '%$q%' OR email_recipient_name LIKE '%$q%' OR email_subject LIKE '%$q%') AND DATE(email_queued_at) BETWEEN '$dtf' AND '$dtt' ORDER BY $sort $order LIMIT $record_from, $record_to" ); @@ -82,6 +82,7 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()"));
| ID | Queued | From | To | @@ -120,6 +121,7 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()")); ?>||
|---|---|---|---|---|---|
| $email_from_name"?> | $email_recipient_name"?> | @@ -128,6 +130,12 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()"));+ + 3 && $email_status == 2) { ?> + + + + |