OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
3-31-025chanakya
/
Xpress
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
03/31/2025 06:36:42 AM
rwxr-xr-x
📄
.browserslistrc
208 bytes
03/26/2025 04:06:47 AM
rw-r--r--
📄
.gitignore
42 bytes
03/26/2025 04:06:47 AM
rw-r--r--
📄
.htaccess
803 bytes
03/26/2025 04:06:47 AM
rw-r--r--
📄
.htaccess.swp
12 KB
03/26/2025 04:06:47 AM
rw-r--r--
📄
.travis.yml
199 bytes
03/26/2025 04:06:47 AM
rw-r--r--
📄
09-01-25navbar.php
30.59 KB
03/26/2025 04:06:47 AM
rw-r--r--
📄
15-02-25viewList.php
14.86 KB
03/26/2025 04:06:47 AM
rw-r--r--
📄
17-02-25newCompaign.php
12.43 KB
03/26/2025 04:06:47 AM
rw-r--r--
📁
NLEditor
-
03/26/2025 04:21:24 AM
rwxr-xr-x
📄
addList.php
6.06 KB
03/26/2025 04:06:47 AM
rw-r--r--
📄
adi_deliveryViewList.php
11.13 KB
03/26/2025 04:06:47 AM
rw-r--r--
📄
aditya_choose.php
6 KB
03/26/2025 04:06:47 AM
rw-r--r--
📄
aditya_choose_template.php
7.52 KB
03/26/2025 04:06:47 AM
rw-r--r--
📄
aditya_viewCampaign.php
24.73 KB
03/26/2025 04:06:47 AM
rw-r--r--
📄
arvind_choose_templates.php
10.83 KB
03/26/2025 04:06:47 AM
rw-r--r--
📁
assets
-
03/26/2025 04:20:38 AM
rwxr-xr-x
📄
back_choose_template.php
7.52 KB
03/26/2025 04:06:47 AM
rw-r--r--
📄
blacklist.php
13.06 KB
03/26/2025 04:06:47 AM
rw-r--r--
📄
bounceViewList.php
14.63 KB
03/26/2025 04:06:47 AM
rw-r--r--
📄
bounce_handler.php
5.05 KB
03/26/2025 04:06:47 AM
rw-r--r--
📄
checkNotificationTopics.php
5.11 KB
03/26/2025 04:06:47 AM
rw-r--r--
📁
check_identity
-
03/26/2025 04:16:12 AM
rwxr-xr-x
📄
checknotif.php
1020 bytes
03/26/2025 04:06:47 AM
rw-r--r--
📄
choose_template.php
6.74 KB
03/26/2025 04:06:47 AM
rw-r--r--
📄
clickViewList.php
13.01 KB
03/26/2025 04:06:47 AM
rw-r--r--
📄
click_handler.php
1.75 KB
03/26/2025 04:06:47 AM
rw-r--r--
📄
complaintsViewList.php
8.41 KB
03/26/2025 04:06:48 AM
rw-r--r--
📄
complaints_handler.php
2.89 KB
03/26/2025 04:06:48 AM
rw-r--r--
📄
composer.json
200 bytes
03/26/2025 04:06:48 AM
rw-r--r--
📄
composer.lock
39.12 KB
03/26/2025 04:06:48 AM
rw-r--r--
📄
createList.php
19.13 KB
03/26/2025 04:06:48 AM
rw-r--r--
📁
credentials
-
03/26/2025 04:16:13 AM
rwxr-xr-x
📄
csv.php
12.33 KB
03/26/2025 04:06:48 AM
rw-r--r--
📁
data
-
03/26/2025 04:21:24 AM
rwxr-xr-x
📄
db.php
991 bytes
03/26/2025 04:06:48 AM
rw-r--r--
📄
deleteCampaign.php
966 bytes
03/26/2025 04:06:48 AM
rw-r--r--
📄
deleteTemplate.php
1.55 KB
03/26/2025 04:06:48 AM
rw-r--r--
📄
delete_list.php
959 bytes
03/26/2025 04:06:48 AM
rw-r--r--
📄
delete_users.php
435 bytes
03/26/2025 04:06:48 AM
rw-r--r--
📄
deliveryViewList.php
12.9 KB
03/26/2025 04:06:49 AM
rw-r--r--
📄
delivery_handler.php
3.25 KB
03/26/2025 04:06:49 AM
rw-r--r--
📄
download_Complaints.php
1.16 KB
03/26/2025 04:06:49 AM
rw-r--r--
📄
download_bounces.php
1.18 KB
03/26/2025 04:06:49 AM
rw-r--r--
📄
download_clicked.php
1.23 KB
03/26/2025 04:06:49 AM
rw-r--r--
📄
download_delivered.php
1.12 KB
03/26/2025 04:06:49 AM
rw-r--r--
📄
download_open.php
1.22 KB
03/26/2025 04:06:49 AM
rw-r--r--
📄
download_report.php
3.33 KB
03/26/2025 04:06:49 AM
rw-r--r--
📄
download_unique_open.php
1.6 KB
03/26/2025 04:06:49 AM
rw-r--r--
📄
duplicate_campaign.php
1.67 KB
03/26/2025 04:06:49 AM
rw-r--r--
📄
edit_campaign.php
1.45 KB
03/26/2025 04:06:49 AM
rw-r--r--
📄
edit_list.php
11.69 KB
03/26/2025 04:06:50 AM
rw-r--r--
📄
feedback.php
1.71 KB
03/26/2025 04:06:50 AM
rw-r--r--
📄
fetch_template.php
493 bytes
03/26/2025 04:06:50 AM
rw-r--r--
📄
footer.php
1.35 KB
03/26/2025 04:06:50 AM
rw-r--r--
📁
grfx
-
03/26/2025 04:16:13 AM
rwxr-xr-x
📄
himanshu_index.php
6.58 KB
03/26/2025 04:06:50 AM
rw-r--r--
📄
himanshu_newCompaign.php
11.25 KB
03/26/2025 04:06:50 AM
rw-r--r--
📄
housekeeping.php
24.85 KB
03/26/2025 04:06:50 AM
rw-r--r--
📄
index.php
9.9 KB
03/26/2025 04:06:50 AM
rw-r--r--
📄
insert_list.php
2.64 KB
03/26/2025 04:06:50 AM
rw-r--r--
📁
js
-
03/26/2025 04:16:13 AM
rwxr-xr-x
📄
load.php
159 bytes
03/26/2025 04:06:50 AM
rw-r--r--
📁
log
-
03/26/2025 04:16:25 AM
rwxr-xr-x
📄
main.css
1.3 KB
03/26/2025 04:06:50 AM
rw-r--r--
📄
navbar.php
22.54 KB
03/26/2025 04:06:50 AM
rw-r--r--
📄
navbar_menu.php
1.94 KB
03/26/2025 04:06:50 AM
rw-r--r--
📄
newCompaign.php
16.25 KB
03/26/2025 04:06:50 AM
rw-r--r--
📄
obc_cards.php
7.58 KB
03/26/2025 04:06:50 AM
rw-r--r--
📄
openViewList.php
14.4 KB
03/26/2025 04:06:51 AM
rw-r--r--
📄
open_handler.php
1.75 KB
03/26/2025 04:06:51 AM
rw-r--r--
📁
process
-
03/26/2025 04:16:33 AM
rwxr-xr-x
📄
process_emails.php
12.53 KB
03/26/2025 04:06:51 AM
rw-r--r--
📄
real-recipients.csv
39.48 KB
03/26/2025 04:06:51 AM
rw-r--r--
📄
resubscribe.php
6.41 KB
03/26/2025 04:06:51 AM
rw-r--r--
📄
sample.csv
55 bytes
03/26/2025 04:06:51 AM
rw-r--r--
📄
save.php
252 bytes
03/26/2025 04:06:51 AM
rw-r--r--
📄
save_campaign.php
612 bytes
03/26/2025 04:06:51 AM
rw-r--r--
📄
saved_content.html
6.48 KB
03/26/2025 04:06:51 AM
rw-r--r--
📄
send_email.php
987 bytes
03/26/2025 04:06:51 AM
rw-r--r--
📄
send_email_campaignGraph.php
2.24 KB
03/26/2025 04:06:51 AM
rw-r--r--
📄
sendgrid.php
3.62 KB
03/26/2025 04:06:51 AM
rw-r--r--
📄
showListMembers.php
11.44 KB
03/26/2025 04:06:51 AM
rw-r--r--
📄
showcase.php
7.79 KB
03/26/2025 04:06:51 AM
rw-r--r--
📄
sidebar.php
0 bytes
03/26/2025 04:06:51 AM
rw-r--r--
📄
sns_subscribe.php
5.25 KB
03/26/2025 04:06:51 AM
rw-r--r--
📄
submit_form.php
2.48 KB
03/26/2025 04:06:51 AM
rw-r--r--
📄
template_index.php
10.08 KB
03/26/2025 04:06:51 AM
rw-r--r--
📄
test-mail.csv
337 bytes
03/26/2025 04:06:51 AM
rw-r--r--
📄
test.php
969 bytes
03/26/2025 04:06:51 AM
rw-r--r--
📄
test_choose_template.php
6.51 KB
03/26/2025 04:06:51 AM
rw-r--r--
📄
test_process_emails.php
1.91 KB
03/26/2025 04:06:51 AM
rw-r--r--
📄
unsubscribe.php
6.87 KB
03/26/2025 04:06:51 AM
rw-r--r--
📄
upload_image.php
606 bytes
03/26/2025 04:06:51 AM
rw-r--r--
📁
uploads
-
03/26/2025 04:16:39 AM
rwxr-xr-x
📁
vendor
-
03/26/2025 04:21:35 AM
rwxr-xr-x
📄
verify.html
486 bytes
03/26/2025 04:06:51 AM
rw-r--r--
📄
verify.php
2.54 KB
03/26/2025 04:06:51 AM
rw-r--r--
📄
verify_email.php
5.03 KB
03/26/2025 04:06:51 AM
rw-r--r--
📄
viewCampaign.php
26.94 KB
03/26/2025 04:06:51 AM
rw-r--r--
📄
viewList.php
17.65 KB
03/26/2025 04:06:51 AM
rw-r--r--
📄
xpress_handler.php
10.51 KB
03/26/2025 04:06:51 AM
rw-r--r--
📄
znewCompaign.php
10.52 KB
03/26/2025 04:06:52 AM
rw-r--r--
📄
zunsubscribe.php
5.82 KB
03/26/2025 04:06:52 AM
rw-r--r--
📄
zzindex.php
6.8 KB
03/26/2025 04:06:52 AM
rw-r--r--
📄
zzzzindex.php
6.68 KB
03/26/2025 04:06:52 AM
rw-r--r--
📄
zzzzzindex.php
55.73 KB
03/26/2025 04:06:52 AM
rw-r--r--
Editing: xpress_handler.php
Close
<?php ini_set('display_errors', 0); // Hide errors from displaying on the page ini_set('log_errors', 1); // Enable error logging ini_set('error_log', 'log/phperror.log'); // Set path for the log file error_reporting(E_ALL); // Capture all types of errors, warnings, notices, etc. include 'db.php'; // Include your database connection // include '../assets/php/db_config.php'; // Include your database connection $logFilePath = 'log/sns_emailLogs.log'; // Update this path as needed // Read and decode SNS message $snsMessage = file_get_contents('php://input'); $snsMessage = json_decode($snsMessage, true); file_put_contents($logFilePath, date('Y-m-d H:i:s') . " - Received message: " . print_r($snsMessage, true), FILE_APPEND); if (isset($snsMessage['Type']) && $snsMessage['Type'] === 'SubscriptionConfirmation') { // Confirm the subscription $subscriptionUrl = $snsMessage['SubscribeURL']; file_get_contents($subscriptionUrl); file_put_contents($logFilePath, date('Y-m-d H:i:s') . " - Subscription confirmed: " . print_r($response, true), FILE_APPEND); } elseif (isset($snsMessage['Type']) && $snsMessage['Type'] === 'Notification') { $message = json_decode($snsMessage['Message'], true); $eventType = $message['eventType'] ?? ''; $timestamp = date('Y-m-d H:i:s'); if ($eventType === "Click") { $fromEmail = $message['mail']['source'] ?? ''; $toEmail = $message['mail']['destination'][0] ?? ''; $messageId = $message['mail']['messageId'] ?? null; $stmt = $conn->prepare("INSERT INTO email_clicks (from_email, to_email, message_id, clicked_at) VALUES (?, ?, ?, ?)"); $stmt->bind_param("ssss", $fromEmail, $toEmail, $messageId, $timestamp); if ($stmt->execute() === FALSE) { file_put_contents($logFilePath, date('Y-m-d H:i:s') . " - Database insert error: " . $stmt->error, FILE_APPEND); } $stmt->close(); } elseif ($eventType === "Open") { $fromEmail = $message['mail']['source'] ?? ''; $toEmail = $message['mail']['destination'][0] ?? ''; $messageId = $message['mail']['messageId'] ?? null; $stmt = $conn->prepare("INSERT INTO email_opens (from_email, to_email, message_id, opened_at) VALUES (?, ?, ?, ?)"); $stmt->bind_param("ssss", $fromEmail, $toEmail, $messageId, $timestamp); if ($stmt->execute() === FALSE) { file_put_contents($logFilePath, date('Y-m-d H:i:s') . " - Database insert error: " . $stmt->error, FILE_APPEND); } $stmt->close(); } elseif ($eventType === "Send") { $fromEmail = $message['mail']['source'] ?? ''; $toEmail = $message['mail']['destination'][0] ?? ''; $messageId = $message['mail']['messageId'] ?? null; $stmt = $conn->prepare("UPDATE messages SET from_email = ?, to_email =? WHERE message_id = ?"); $stmt->bind_param("sss", $fromEmail, $toEmail, $messageId); if ($stmt->execute() === FALSE) { file_put_contents($logFilePath, date('Y-m-d H:i:s') . " - Database insert error: " . $stmt->error, FILE_APPEND); } $stmt->close(); } elseif ($eventType === "Delivery") { $delivery = $message['delivery']; $deliveryRecipients = $delivery['recipients']; foreach ($deliveryRecipients as $recipient) { $sourceEmail = $message['mail']['source']; $emailAddress = $recipient; $messageId = $message['mail']['messageId']; $timestamp = $delivery['timestamp']; $remoteMtaIp = $delivery['remoteMtaIp'] ?? ''; foreach ($message['mail']['destination'] as $emailAddress) { // Save delivery information to your database saveDelivery($sourceEmail, $emailAddress, $messageId, $timestamp, $remoteMtaIp); } } } elseif ($eventType === "Bounce") { $bounce = $message['bounce']; $bouncedRecipients = $bounce['bouncedRecipients']; foreach ($bouncedRecipients as $recipient) { $sourceEmail = $message['mail']['source']; $emailAddress = $recipient['emailAddress']; $bounceType = $bounce['bounceType']; $bounceSubType = $bounce['bounceSubType']; $timestamp = $bounce['timestamp']; $feedbackId = $bounce['feedbackId']; $remoteMtaIp = $recipient['remoteMtaIp'] ?? ''; $diagnosticCode = $recipient['diagnosticCode'] ?? ''; $messageId = $message['mail']['messageId']; // Save bounce information to your database saveBounce($sourceEmail, $emailAddress, $bounceType, $bounceSubType, $timestamp, $feedbackId, $remoteMtaIp, $diagnosticCode, $messageId); add_suppression_list($emailAddress, $messageId, $diagnosticCode); // deleteEmailFromAllLists($emailAddress); } } elseif ($eventType === "Complaints") { $complaint = $message['complaint']; $complainedRecipients = $complaint['complainedRecipients']; foreach ($complainedRecipients as $recipient) { $sourceEmail = $message['mail']['source']; $emailAddress = $recipient['emailAddress']; $complaintType = $complaint['complaintFeedbackType']; $timestamp = $complaint['timestamp']; $feedbackId = $complaint['feedbackId']; // Save complaint information to your database saveComplaint($sourceEmail, $emailAddress, $complaintType, $timestamp, $feedbackId); } } } // Function to save bounce information to the database using MySQLi function saveBounce($sourceEmail, $email, $type, $subType, $timestamp, $feedbackId, $remoteMtaIp, $diagnosticCode, $messageId) { global $conn; // Convert ISO 8601 timestamp to MySQL DATETIME format $dateTime = new DateTime($timestamp); $formattedTimestamp = $dateTime->format('Y-m-d H:i:s'); // Check connection if ($conn->connect_error) { file_put_contents('log/xpress_error.log', date('Y-m-d H:i:s') . " - Database connection error: " . $conn->connect_error . "\n", FILE_APPEND); return; } // Prepare and bind $stmt = $conn->prepare("INSERT INTO bounces(from_email, email, bounce_type, bounce_sub_type, timestamp, feedback_id, remote_mta_ip, diagnostic_code, message_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"); $stmt->bind_param("sssssssss", $sourceEmail, $email, $type, $subType, $formattedTimestamp, $feedbackId, $remoteMtaIp, $diagnosticCode, $messageId); // Execute the statement if ($stmt->execute() === FALSE) { file_put_contents('log/xpress_error.log', date('Y-m-d H:i:s') . " - Database insert error: " . $stmt->error . "\n", FILE_APPEND); } // Close the statement and connection $stmt->close(); $conn->close(); } function add_suppression_list($email, $messageId, $reason) { global $conn; mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); try { $stmt = $conn->prepare("INSERT INTO suppression_list(email, message_id, reason) VALUES (?, ?, ?)"); $stmt->bind_param("sss", $email, $messageId, $reason); if ($stmt->execute() === FALSE) { file_put_contents('log/xpress_error.log', date('Y-m-d H:i:s') . " - Database insert error: " . $stmt->error . "\n", FILE_APPEND); } } catch (mysqli_sql_exception $e) { if ($e->getCode() == 1062) { // 1062 is the error code for duplicate entry http_response_code(409); // HTTP status code for conflict echo 'Duplicate entry detected'; file_put_contents('log/xpress_error.log', date('Y-m-d H:i:s') . " - Database insert error: Duplicate entry detected" . "\n", FILE_APPEND); } else { // Other MySQL errors http_response_code(500); echo 'Failed to add to collection: ' . $e->getMessage(); file_put_contents('log/xpress_error.log', date('Y-m-d H:i:s') . " - Database insert error: Failed to add to collection:" . $e->getMessage() . "\n", FILE_APPEND); } // Close the statement and connection $stmt->close(); $conn->close(); } } // Function to save delivery information to the database using MySQLi function saveDelivery($sourceEmail, $email, $messageId, $timestamp, $remoteMtaIp) { global $conn, $logFilePath; // Convert ISO 8601 timestamp to MySQL DATETIME format $dateTime = new DateTime($timestamp); $formattedTimestamp = $dateTime->format('Y-m-d H:i:s'); // Check connection if ($conn->connect_error) { file_put_contents('log/xpress_error.log', date('Y-m-d H:i:s') . " - Database connection error: " . $conn->connect_error . "\n", FILE_APPEND); return; } // Prepare and bind $stmt = $conn->prepare("INSERT INTO deliveries(from_email, email, message_id, timestamp, remote_mta_ip) VALUES (?, ?, ?, ?, ?)"); $stmt->bind_param("sssss", $sourceEmail, $email, $messageId, $formattedTimestamp, $remoteMtaIp); // Execute the statement if ($stmt->execute() === FALSE) { file_put_contents('log/xpress_error.log', date('Y-m-d H:i:s') . " - Database insert error: " . $stmt->error . "\n", FILE_APPEND); } // Close the statement and connection $stmt->close(); $conn->close(); file_put_contents($logFilePath, date('Y-m-d H:i:s') . "Email is Delivered adn inserted into database", FILE_APPEND); } // Function to save complaint information to the database using MySQLi function saveComplaint($sourceEmail, $email, $type, $timestamp, $feedbackId) { global $conn; // Convert ISO 8601 timestamp to MySQL DATETIME format $dateTime = new DateTime($timestamp); $formattedTimestamp = $dateTime->format('Y-m-d H:i:s'); // Check connection if ($conn->connect_error) { file_put_contents('log/xpress_error.log', date('Y-m-d H:i:s') . " - Database connection error: " . $conn->connect_error . "\n", FILE_APPEND); return; } // Prepare and bind $stmt = $conn->prepare("INSERT INTO complaints(from_email, email, complaint_type, timestamp, feedback_id) VALUES (?, ?, ?, ?, ?)"); $stmt->bind_param("sssss", $sourceEmail, $email, $type, $formattedTimestamp, $feedbackId); // Execute the statement if ($stmt->execute() === FALSE) { file_put_contents('log/xpress_error.log', date('Y-m-d H:i:s') . " - Database insert error: " . $stmt->error . "\n", FILE_APPEND); } // Close the statement and connection $stmt->close(); $conn->close(); }