OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
cream
/
Xpress
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
06/17/2025 10:17:24 AM
rwxrwxr-x
📄
.browserslistrc
208 bytes
03/05/2025 10:49:45 AM
rw-r--r--
📄
.gitignore
42 bytes
03/05/2025 10:49:45 AM
rw-r--r--
📄
.htaccess
803 bytes
03/05/2025 10:49:45 AM
rw-r--r--
📄
.htaccess.swp
12 KB
03/05/2025 10:49:45 AM
rw-r--r--
📄
.travis.yml
199 bytes
03/05/2025 10:49:45 AM
rw-r--r--
📄
09-01-25navbar.php
23.78 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
15-02-25viewList.php
15.21 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
17-02-25newCompaign.php
13.09 KB
05/19/2025 10:07:16 AM
rw-r--r--
📁
NLEditor
-
05/28/2025 07:37:39 AM
rwxrwxrwx
📄
addList.php
6.89 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
adi_deliveryViewList.php
11.25 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
aditya_choose.php
6.13 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
aditya_choose_template.php
7.73 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
aditya_viewCampaign.php
25.53 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
adityanewCompaign.php
18.61 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
adityaprocess_emails.php
12.93 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
arvind_choose_templates.php
11.17 KB
05/19/2025 10:07:16 AM
rw-r--r--
📁
assets
-
03/05/2025 10:50:21 AM
rwxr-xr-x
📄
back_choose_template.php
8.12 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
blacklist.php
13.47 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
bounceViewList.php
15.04 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
bounce_handler.php
5.05 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
checkNotificationTopics.php
5.11 KB
05/19/2025 10:07:17 AM
rw-r--r--
📁
check_identity
-
05/19/2025 10:07:16 AM
rwxr-xr-x
📄
checknotif.php
1.01 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
choose_template.php
9.2 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
clickViewList.php
13.34 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
click_handler.php
1.75 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
complaintsViewList.php
8.78 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
complaints_handler.php
2.89 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
composer.json
200 bytes
03/05/2025 10:49:45 AM
rw-r--r--
📄
composer.lock
39.12 KB
03/05/2025 10:49:45 AM
rw-r--r--
📄
createList.php
19.88 KB
05/19/2025 10:07:17 AM
rw-r--r--
📁
credentials
-
03/05/2025 10:49:47 AM
rwxr-xr-x
📄
csv.php
13.12 KB
05/19/2025 10:07:16 AM
rw-r--r--
📁
data
-
03/05/2025 10:50:45 AM
rwxr-xr-x
📄
db.php
1000 bytes
05/19/2025 10:07:16 AM
rw-r--r--
📄
deleteCampaign.php
966 bytes
05/19/2025 10:07:17 AM
rw-r--r--
📄
deleteTemplate.php
1.55 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
delete_list.php
903 bytes
05/19/2025 10:07:16 AM
rw-r--r--
📄
delete_users.php
435 bytes
05/19/2025 10:07:16 AM
rw-r--r--
📄
deliveryViewList.php
13.13 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
delivery_handler.php
3.25 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
download_Complaints.php
1.16 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
download_bounces.php
1.18 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
download_clicked.php
1.23 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
download_delivered.php
1.12 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
download_open.php
1.22 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
download_report.php
3.33 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
download_unique_open.php
1.6 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
duplicate_campaign.php
1.62 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
edit_campaign.php
1.45 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
edit_list.php
11.92 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
feedback.php
1.66 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
fetch_template.php
493 bytes
05/19/2025 10:07:16 AM
rw-r--r--
📄
footer.php
1.36 KB
05/19/2025 10:07:16 AM
rw-r--r--
📁
grfx
-
03/05/2025 10:49:48 AM
rwxr-xr-x
📄
himanshu_index.php
6.66 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
himanshu_newCompaign.php
11.92 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
housekeeping.php
25.61 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
index.php
10.15 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
insert_list.php
2.64 KB
05/19/2025 10:07:16 AM
rw-r--r--
📁
js
-
03/05/2025 10:49:48 AM
rwxr-xr-x
📄
load.php
159 bytes
05/19/2025 10:07:17 AM
rw-r--r--
📁
log
-
03/05/2025 10:49:56 AM
rwxr-xr-x
📄
main.css
1.3 KB
03/05/2025 11:02:42 AM
rw-r--r--
📄
navbar.php
22.64 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
navbar_menu.php
1.89 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
newCompaign.php
16.72 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
obc_cards.php
8.25 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
openViewList.php
14.75 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
open_handler.php
1.75 KB
05/19/2025 10:07:17 AM
rw-r--r--
📁
process
-
05/19/2025 10:07:16 AM
rwxr-xr-x
📄
process_emails.php
13.27 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
real-recipients.csv
39.48 KB
03/05/2025 10:49:46 AM
rw-r--r--
📄
resubscribe.php
7.17 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
sample.csv
55 bytes
03/05/2025 10:49:46 AM
rw-r--r--
📄
save.php
252 bytes
05/19/2025 10:07:16 AM
rw-r--r--
📄
save_campaign.php
612 bytes
05/19/2025 10:07:16 AM
rw-r--r--
📄
saved_content.html
8 bytes
05/14/2025 08:36:09 AM
rw-r--r--
📄
send_email.php
987 bytes
05/19/2025 10:07:16 AM
rw-r--r--
📄
send_email_campaignGraph.php
2.24 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
sendgrid.php
3.62 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
showListMembers.php
12.16 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
showcase.php
7.93 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
sidebar.php
0 bytes
05/19/2025 10:07:16 AM
rw-r--r--
📄
sns_subscribe.php
5.25 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
submit_form.php
2.48 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
template_index.php
10.29 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
test-mail.csv
337 bytes
03/05/2025 10:49:47 AM
rw-r--r--
📄
test.php
969 bytes
05/19/2025 10:07:16 AM
rw-r--r--
📄
test_choose_template.php
6.85 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
test_process_emails.php
1.91 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
unsubscribe.php
7.63 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
upload_image.php
606 bytes
05/19/2025 10:07:16 AM
rw-r--r--
📁
uploads
-
05/23/2025 09:06:53 AM
rwxrwxrwx
📁
vendor
-
05/19/2025 10:07:17 AM
rwxr-xr-x
📄
verify.html
486 bytes
03/05/2025 10:49:47 AM
rw-r--r--
📄
verify.php
3.12 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
verify_email.php
5.12 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
viewCampaign.php
27.83 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
viewList.php
18.1 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
xpress_handler.php
10.38 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
znewCompaign.php
11.22 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
zunsubscribe.php
6.02 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
zzindex.php
6.89 KB
05/19/2025 10:07:17 AM
rw-r--r--
📄
zzzzindex.php
6.76 KB
05/19/2025 10:07:16 AM
rw-r--r--
📄
zzzzzindex.php
6.88 KB
05/19/2025 10:07:17 AM
rw-r--r--
Editing: xpress_handler.php
Close
<?php ini_set('display_errors', 0); // Hide errors from displaying on the page ini_set('error_log', 'log/phperror.log'); // Set path for the log file 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(); }