query("SELECT c.*, w.inbox_rate FROM admin.brain_configs c JOIN admin.brain_winners w ON w.config_id = c.id WHERE w.is_active = true ORDER BY w.inbox_rate DESC LIMIT 1")->fetch(PDO::FETCH_ASSOC); if (!$winner) die("❌ No winner config\n"); // 2. Get offer WITH real sponsor link if ($requestedOffer) { $offer = $pdo->query("SELECT o.id, o.name, l.value as sponsor_url FROM affiliate.offers o LEFT JOIN affiliate.links l ON l.offer_id=o.id AND l.type='preview' AND l.value LIKE 'http%' WHERE o.id = $requestedOffer LIMIT 1")->fetch(PDO::FETCH_ASSOC); } else { $offer = $pdo->query("SELECT o.id, o.name, l.value as sponsor_url FROM affiliate.offers o JOIN affiliate.links l ON l.offer_id=o.id AND l.type='preview' AND l.value LIKE 'http%' WHERE o.status = 'Activated' ORDER BY RANDOM() LIMIT 1")->fetch(PDO::FETCH_ASSOC); } if (!$offer) die("❌ No offer with sponsor link\n"); // 3. Get from_name and subject (NEVER raw offer name) $fn = $pdo->query("SELECT value FROM affiliate.from_names WHERE offer_id = {$offer['id']} ORDER BY RANDOM() LIMIT 1")->fetch(PDO::FETCH_ASSOC); $sj = $pdo->query("SELECT value FROM affiliate.subjects WHERE offer_id = {$offer['id']} ORDER BY RANDOM() LIMIT 1")->fetch(PDO::FETCH_ASSOC); $fromName = $fn['value'] ?? 'Customer Support'; $subject = $sj['value'] ?? 'Important notification'; // 4. Build tracking URLs $domain = $winner['domain_used'] ?: 'wevup.app'; $fromEmail = "hello@$domain"; $trackBase = "https://wevup.app"; $clickUrl = "$trackBase/click.php?url=" . base64_encode($offer['sponsor_url']) . "&oid={$offer['id']}&e=" . urlencode($toEmail); $openPixel = "$trackBase/tracking.php?act=op&oid={$offer['id']}&e=" . urlencode($toEmail); $unsubUrl = "$trackBase/click.php?url=" . base64_encode("https://wevup.app/unsub.php") . "&act=unsub&e=" . urlencode($toEmail); // 5. Build proper HTML creative (NEVER expose raw offer name) $body = <<