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

81 lines
2.8 KiB
PHP
Executable File

<?php
/**
* SEND REAL OFFER - Envoi de vraies offres avec tracking
* Usage: php send_real_offer.php [creative_id] [to_email]
*/
$pdo = new PDO('pgsql:host=localhost;dbname=adx_system', 'admin', 'admin123');
$creativeId = $argv[1] ?? null;
$toEmail = $argv[2] ?? 'Joecloud0101@proton.me';
// Si pas d'ID, prendre un créatif au hasard avec landing_url
if (!$creativeId) {
$creative = $pdo->query("SELECT * FROM admin.offer_creatives WHERE status = 'active' AND landing_url IS NOT NULL AND landing_url != '' ORDER BY RANDOM() LIMIT 1")->fetch(PDO::FETCH_ASSOC);
} else {
$creative = $pdo->query("SELECT * FROM admin.offer_creatives WHERE id = $creativeId")->fetch(PDO::FETCH_ASSOC);
}
if (!$creative) {
die("❌ Aucun créatif trouvé\n");
}
$from = 'offers@wevads.com';
$fromName = $creative['from_name'];
$subject = $creative['subject_line'];
$body = $creative['html_body'];
$landingUrl = $creative['landing_url'] ?: 'https://google.com';
// Tracking base
$trackingBase = 'https://culturellemejean.charity';
// Encoder l'URL en base64 pour click.php
$encodedUrl = base64_encode($landingUrl);
$clickUrl = "$trackingBase/click.php?url=$encodedUrl&cid={$creative['offer_id']}&e=" . urlencode($toEmail);
$unsubUrl = "$trackingBase/optout.php?cid={$creative['offer_id']}&e=" . urlencode($toEmail);
// Remplacer placeholders
$body = str_replace('[CLICK_URL]', $clickUrl, $body);
$body = str_replace('[UNSUB_URL]', $unsubUrl, $body);
// Ajouter pixel de tracking
$openPixel = "<img src=\"$trackingBase/tracking.php?act=op&cid={$creative['offer_id']}&e=" . urlencode($toEmail) . "\" width=\"1\" height=\"1\" style=\"display:none\">";
$body = str_replace('</body>', "$openPixel</body>", $body);
echo "📧 ENVOI OFFRE RÉELLE\n";
echo " Creative: #{$creative['id']} (Offer #{$creative['offer_id']})\n";
echo " Subject: $subject\n";
echo " From: $fromName <$from>\n";
echo " To: $toEmail\n";
echo " Landing: $landingUrl\n\n";
// Envoyer via PMTA
$socket = @fsockopen('127.0.0.1', 25, $errno, $errstr, 10);
if (!$socket) die("❌ PMTA connexion échouée\n");
fgets($socket);
foreach(["EHLO wevads.com\r\n", "MAIL FROM:<$from>\r\n", "RCPT TO:<$toEmail>\r\n", "DATA\r\n"] as $cmd) {
fwrite($socket, $cmd);
fgets($socket);
}
$msg = "From: $fromName <$from>\r\n";
$msg .= "To: $toEmail\r\n";
$msg .= "Subject: $subject\r\n";
$msg .= "MIME-Version: 1.0\r\n";
$msg .= "Content-Type: text/html; charset=UTF-8\r\n";
$msg .= "List-Unsubscribe: <$unsubUrl>\r\n";
$msg .= "\r\n$body\r\n.\r\n";
fwrite($socket, $msg);
$response = fgets($socket);
fwrite($socket, "QUIT\r\n");
fclose($socket);
if (strpos($response, '250') !== false) {
echo "✅ ENVOYÉ!\n";
$pdo->exec("UPDATE admin.offer_creatives SET times_used = times_used + 1, last_used = NOW() WHERE id = {$creative['id']}");
} else {
echo "❌ Erreur: $response\n";
}