Files
wevads-platform/scripts/brain_smart_test.php
2026-02-26 04:53:11 +01:00

59 lines
3.0 KiB
PHP
Executable File

<?php
/**
* BRAIN SMART TEST - Teste les configs avec les VRAIS seeds par ISP
*/
$pdo = new PDO("pgsql:host=localhost;dbname=adx_system", "admin", "admin123");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$ispMapping = [
'T-ONLINE' => ['T-ONLINE', 'TONLINE'], 'GMX' => ['GMX'], 'GMAIL' => ['GMAIL', 'GOOGLE'],
'OUTLOOK' => ['HOTMAIL', 'MICROSOFT', 'OUTLOOK'], 'HOTMAIL' => ['HOTMAIL', 'MICROSOFT'],
'ZIGGO' => ['ZIGGO'], 'ALICE' => ['ALICE', 'LIBERO'], 'VIDEOTRON' => ['VIDEOTRON'],
'SFR' => ['SFR'], 'ORANGE' => ['ORANGE'], 'YAHOO' => ['YAHOO'], 'FREENET' => ['FREENET']
];
$configId = $argv[1] ?? null;
if ($configId) {
$config = $pdo->query("SELECT * FROM admin.brain_configs WHERE id = $configId")->fetch(PDO::FETCH_ASSOC);
} else {
$config = $pdo->query("SELECT c.* FROM admin.brain_configs c JOIN admin.brain_winners w ON w.config_id = c.id WHERE w.is_active = true ORDER BY RANDOM() LIMIT 1")->fetch(PDO::FETCH_ASSOC);
}
if (!$config) die("❌ Aucune config\n");
$ispTarget = strtoupper($config['isp_target']);
echo "🧪 CONFIG #{$config['id']}: {$config['isp_target']} - {$config['send_method']}\n";
$seedIsps = $ispMapping[$ispTarget] ?? [$ispTarget];
$seedIspList = "'" . implode("','", $seedIsps) . "'";
$seed = $pdo->query("SELECT * FROM admin.brain_seeds WHERE UPPER(isp) IN ($seedIspList) AND password IS NOT NULL AND password != '' ORDER BY RANDOM() LIMIT 1")->fetch(PDO::FETCH_ASSOC);
if (!$seed) $seed = $pdo->query("SELECT * FROM admin.brain_seeds WHERE password IS NOT NULL ORDER BY RANDOM() LIMIT 1")->fetch(PDO::FETCH_ASSOC);
if (!$seed) die("❌ Aucun seed\n");
echo "📧 Seed: {$seed['email']} ({$seed['isp']})\n";
$domain = $config['domain_used'] ?: 'wevads.com';
$fromEmail = str_replace('[domain]', $domain, $config['from_email'] ?: "test@$domain");
$fromName = str_replace('[domain]', $domain, $config['from_name'] ?: 'Test');
$subject = 'Brain Test #' . rand(1000,9999) . ' - ' . date('H:i');
$returnPath = str_replace('[domain]', $domain, $config['return_path'] ?: "bounce@$domain");
$body = "<html><body><p>Test Config #{$config['id']} - {$config['isp_target']} - " . date('Y-m-d H:i:s') . "</p></body></html>";
$socket = @fsockopen('127.0.0.1', 25, $errno, $errstr, 10);
if (!$socket) die("❌ PMTA fail\n");
fgets($socket);
foreach(["EHLO $domain\r\n", "MAIL FROM:<$returnPath>\r\n", "RCPT TO:<{$seed['email']}>\r\n", "DATA\r\n"] as $cmd) { fwrite($socket, $cmd); fgets($socket); }
$msg = "From: $fromName <$fromEmail>\r\nTo: {$seed['email']}\r\nSubject: $subject\r\nContent-Type: text/html\r\n\r\n$body\r\n.\r\n";
fwrite($socket, $msg);
$response = fgets($socket);
fwrite($socket, "QUIT\r\n");
fclose($socket);
$success = strpos($response, '250') !== false;
echo $success ? "✅ ENVOYÉ!\n" : "❌ FAIL: $response\n";
// Log sans foreign key
$pdo->exec("INSERT INTO admin.brain_learning_log (event_type, data, lesson_learned, created_at) VALUES ('smart_test', '{\"config\":{$config['id']},\"seed\":{$seed['id']},\"status\":\"" . ($success ? 'sent' : 'failed') . "\"}', 'Test config {$config['id']} vers {$seed['isp']}', NOW())");