Files
wevads-arsenal/public/send-process.html

179 lines
13 KiB
HTML

<!DOCTYPE html><html lang="fr"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>WEVADS • Production Send</title>
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet">
<style>
:root{--bg:#ffffff;--s:#ffffff;--s2:#f8f9fa;--b:#e2e8f0;--t:#1e293b;--d:#64748b;--cy:#22d3ee;--gn:#34d399;--am:#fbbf24;--rd:#f87171;--pu:#a78bfa;--bl:#60a5fa;--og:#fb923c}
.light{--bg:#f0f2f5;--s:#ffffff;--s2:#f8fafc;--b:#e2e8f0;--t:#1e293b;--d:#64748b}.light input,.light select,.light textarea{background:#f8fafc!important;border-color:#e2e8f0!important;color:#1e293b!important}
*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--t);font-family:'DM Sans',sans-serif;font-size:11px}
.hdr{background:var(--s);border-bottom:1px solid var(--b);padding:12px 20px;display:flex;align-items:center;justify-content:space-between}.hdr h1{font-size:16px;font-weight:700}.hdr h1 span{color:var(--rd)}
.wrap{padding:16px;max-width:1200px;margin:0 auto}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.card{background:var(--s);border:1px solid var(--b);border-radius:10px;padding:16px;margin-bottom:12px}
.form-row{margin-bottom:10px}.form-row label{display:block;font-size:9px;text-transform:uppercase;color:var(--d);margin-bottom:4px;letter-spacing:.5px}
.form-row input,.form-row select,.form-row textarea{width:100%;background:var(--s2);border:1px solid var(--b);color:var(--t);padding:8px;border-radius:6px;font-size:11px;font-family:'DM Sans',sans-serif}
.form-row select[multiple]{min-height:140px}
.btn{padding:10px 20px;border-radius:8px;border:1px solid var(--b);background:var(--s2);color:var(--t);cursor:pointer;font-size:11px;font-weight:600;width:100%;text-align:center;transition:.2s}.btn:hover{border-color:var(--cy)}
.btn-send{background:rgba(248,113,113,.15);border-color:var(--rd);color:var(--rd);padding:14px;font-size:14px;font-weight:700}
.btn-gn{background:rgba(52,211,153,.15);border-color:var(--gn);color:var(--gn)}
.badge{font-size:8px;padding:2px 6px;border-radius:3px;font-weight:600}.badge-gn{background:rgba(52,211,153,.15);color:var(--gn)}.badge-am{background:rgba(251,191,36,.15);color:var(--am)}.badge-rd{background:rgba(248,113,113,.15);color:var(--rd)}
.server-tag{display:inline-block;background:var(--s2);border:1px solid var(--b);border-radius:4px;padding:2px 6px;font-size:9px;margin:2px;font-family:'JetBrains Mono',monospace}
table{width:100%;border-collapse:collapse;font-size:10px}th{text-align:left;color:var(--d);text-transform:uppercase;font-size:9px;padding:6px 8px;border-bottom:1px solid var(--b)}td{padding:6px 8px;border-bottom:1px solid rgba(30,41,59,.3)}
.toggle-btn{position:fixed;top:10px;right:56px;z-index:9999;background:rgba(17,24,39,.9);border:1px solid #1e293b;border-radius:50%;width:30px;height:30px;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;font-size:13px;color:#e2e8f0;backdrop-filter:blur(8px)}
@media(max-width:900px){.grid2,.grid3{grid-template-columns:1fr}}
/* Hide Arsenal top menu */
.arsenal-top-menu, .arsenal-nav, #arsenal-menu, .top-bar, header.arsenal {display:none!important;}
body {padding-top:0!important;}
</style>
</head><body>
<div class="hdr"><div><h1>🚀 WEVADS • <span>Production Send Process</span></h1><span style="font-size:10px;color:var(--d)">Sélection serveurs PMTA → VMTAs → Lancement envoi production</span></div><div style="display:flex;gap:8px;align-items:center"><span class="badge badge-gn">● PRODUCTION</span><button onclick="toggleQuickAccess()" style="background:#fb923c;color:white;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-weight:600;font-size:11px;margin-left:8px;">⚡ QUICK ACCESS</button><span style="font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--d)" id="clock"></span></div></div>
<div class="wrap">
<div class="grid2">
<div>
<div class="card">
<h3 style="font-size:12px;margin-bottom:10px;color:var(--cy)">📡 SERVERS / PMTAs</h3>
<div class="form-row"><label>Serveurs disponibles</label><select multiple id="servers">
<option value="pmta-main">pmta-main (89.167.40.150) — Queue: 15,534</option>
<option value="pmta-02">pmta-02 (85.235.100.12) — Queue: 8,240</option>
<option value="pmta-03">pmta-03 (85.235.100.13) — Queue: 4,120</option>
<option value="pmta-04">pmta-04 (185.142.80.5) — Queue: 6,800</option>
<option value="pmta-05">pmta-05 (185.142.80.6) — Queue: 2,100</option>
</select></div>
<div style="font-size:9px;color:var(--d);margin-bottom:8px">Sélectionnés: <span id="srv-count" style="color:var(--cy)">0</span></div>
</div>
<div class="card">
<h3 style="font-size:12px;margin-bottom:10px;color:var(--am)">🔀 VMTAs Disponibles</h3>
<div class="form-row"><label>Available VMTAs</label><select multiple id="vmtas-avail">
<option>vmta-gmail-01 (IP: 185.142.80.10)</option>
<option>vmta-gmail-02 (IP: 185.142.80.11)</option>
<option>vmta-outlook-01 (IP: 85.235.100.20)</option>
<option>vmta-outlook-02 (IP: 85.235.100.21)</option>
<option>vmta-tonline-01 (IP: 185.142.80.30)</option>
<option>vmta-gmx-01 (IP: 85.235.100.30)</option>
<option>vmta-yahoo-01 (IP: 185.142.80.40)</option>
<option>vmta-general-01 (IP: 89.167.40.150)</option>
</select></div>
<div style="display:flex;gap:6px;margin-bottom:8px">
<button class="btn" style="width:auto;padding:6px 12px" onclick="selectAll('vmtas-avail')">Select All</button>
<button class="btn" style="width:auto;padding:6px 12px" onclick="moveSelected()">→ Add to Selected</button>
</div>
<div class="form-row"><label>Selected VMTAs</label><select multiple id="vmtas-sel" style="min-height:100px"></select></div>
<div style="font-size:9px;color:var(--d)">VMTAs sélectionnés: <span id="vmta-count" style="color:var(--am)">0</span></div>
</div>
</div>
<div>
<div class="card">
<h3 style="font-size:12px;margin-bottom:10px;color:var(--gn)">📋 Configuration d'envoi</h3>
<div class="form-row"><label>Campagne</label><input value="PROD-2026-02-08-001"></div>
<div class="form-row"><label>Liste de contacts</label><select>
<option>Hotmail US Clean Winx (4,100,000)</option>
<option>Gmail DE DACH Premium (1,200,000)</option>
<option>T-Online Leads (340,000)</option>
<option>GMX/Web.de Mix (520,000)</option>
</select></div>
<div class="form-row"><label>Template</label><select>
<option>FOMO Urgence — Winter Sale -40%</option>
<option>B2B Outreach — Decision Maker</option>
<option>Newsletter Premium</option>
<option>Pharma Free Trial</option>
</select></div>
<div class="form-row"><label>Méthode d'envoi</label><select>
<option>PMTA Direct (VMTAs sélectionnés)</option>
<option>Brain Unified Send (auto-routing)</option>
<option>O365 Graph API</option>
<option>Mix: PMTA + O365</option>
</select></div>
<div class="form-row"><label>Volume</label><select>
<option>100 (test)</option>
<option>1,000</option>
<option>10,000</option>
<option>100,000</option>
<option selected>Full list</option>
</select></div>
<div class="form-row"><label>Throttle (emails/min)</label><input type="number" value="50"></div>
<div class="form-row"><label>Planification</label><select>
<option>Maintenant</option>
<option selected>Predictive Window (IA)</option>
<option>Programmé — choisir date/heure</option>
</select></div>
</div>
<div class="card">
<h3 style="font-size:12px;margin-bottom:8px">✅ Checklist pré-envoi</h3>
<div style="font-size:10px;line-height:2">
<div><span style="color:var(--gn)"></span> Serveurs PMTA actifs</div>
<div><span style="color:var(--gn)"></span> VMTAs configurés</div>
<div><span style="color:var(--gn)"></span> Liste nettoyée (Trap Detector)</div>
<div><span style="color:var(--gn)"></span> Template muté (Neural DOM)</div>
<div><span style="color:var(--gn)"></span> DNS vérifié (SPF+DKIM+DMARC)</div>
<div><span style="color:var(--gn)"></span> IP reputation OK</div>
<div><span style="color:var(--gn)"></span> Kill Switch prêt</div>
</div>
</div>
<button class="btn btn-send" onclick="launchSend()">🚀 LANCER ENVOI PRODUCTION</button>
<div id="send-status" style="margin-top:8px;text-align:center;font-size:11px"></div>
</div>
</div>
</div>
<script>
document.getElementById('servers').addEventListener('change',function(){document.getElementById('srv-count').textContent=this.selectedOptions.length});
function selectAll(id){var s=document.getElementById(id);for(var i=0;i<s.options.length;i++)s.options[i].selected=true}
function moveSelected(){var a=document.getElementById('vmtas-avail'),s=document.getElementById('vmtas-sel');for(var i=a.options.length-1;i>=0;i--){if(a.options[i].selected){var o=new Option(a.options[i].text,a.options[i].value);s.add(o);a.remove(i)}}document.getElementById('vmta-count').textContent=s.options.length}
function launchSend(){var st=document.getElementById('send-status');st.innerHTML='<span style="color:var(--am)">⏳ Préparation envoi...</span>';setTimeout(function(){st.innerHTML='<span style="color:var(--gn)">✅ Envoi lancé — Monitoring en cours sur Brain Drilldown</span>'},2000)}
setInterval(function(){document.getElementById('clock').textContent=new Date().toLocaleString('fr-FR')},1000);
// === ARSENAL API INJECTION ===
async function arsenalLoad() {
try {
const r = await fetch('/deliverads/send-engine.php?action=stats');
const d = await r.json();
console.log('Arsenal API loaded:', d);
if (d.data) arsenalRender(d.data);
else if (d.results) arsenalRender(d.results);
else arsenalRender(d);
} catch(e) { console.error('Arsenal API error:', e); }
}
function arsenalRender(data) {
// Update any stat counters on the page
document.querySelectorAll('[data-stat]').forEach(el => {
const key = el.dataset.stat;
if (data[key] !== undefined) el.textContent = data[key];
});
// Update tables if present
const tbody = document.querySelector('tbody');
if (tbody && Array.isArray(data)) {
tbody.innerHTML = data.slice(0,50).map(row => {
const vals = Object.values(row);
return '<tr>' + vals.map(v => '<td>' + (v ?? '-') + '</td>').join('') + '</tr>';
}).join('');
}
}
arsenalLoad();
setInterval(arsenalLoad, 30000);
async function detectISP(email){const r=await fetch('/deliverads/send-engine.php',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({action:'detect_isp',email:email})});return r.json();}
async function sendEmail(payload){const r=await fetch('/deliverads/send-engine.php',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({action:'send',...payload})});return r.json();}
</script><script src="arsenal-common.js"></script>
</script>
<?php if(false): ?>
<!-- Quick Access Modal -->
<div id="quickAccessModal" style="display:none;position:fixed;z-index:9999;right:20px;bottom:80px;background:var(--s);border:1px solid var(--b);border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,0.3);padding:20px;width:320px;">
<div style="display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;border-bottom:2px solid var(--cy);padding-bottom:10px;">
<h3 style="margin:0;color:var(--cy);font-size:16px;font-weight:600;">Quick Access</h3>
<button onclick="toggleQuickAccess()" style="background:transparent;border:none;font-size:24px;cursor:pointer;color:var(--d);">&times;</button>
</div>
<div style="display:grid;grid-template-columns:1fr 1fr;gap:12px;">
<button onclick="window.location.href='semi-auto-send.php'" style="background:var(--cy);color:white;border:none;padding:15px;border-radius:8px;font-weight:500;cursor:pointer;"><div style="font-size:20px;margin-bottom:5px;">🔄</div>Semi-Auto Send</button>
<button onclick="window.location.href='brain-engine.html'" style="background:var(--pu);color:white;border:none;padding:15px;border-radius:8px;font-weight:500;cursor:pointer;"><div style="font-size:20px;margin-bottom:5px;">🧠</div>Brain Engine</button>
<button onclick="window.location.href='hamid-admin.php'" style="background:var(--cy);color:white;border:none;padding:15px;border-radius:8px;font-weight:500;cursor:pointer;"><div style="font-size:20px;margin-bottom:5px;">🤖</div>HAMID IA</button>
<button onclick="window.location.href='scrapping-factory.html'" style="background:var(--pu);color:white;border:none;padding:15px;border-radius:8px;font-weight:500;cursor:pointer;"><div style="font-size:20px;margin-bottom:5px;">🔍</div>Scraping</button>
<button onclick="window.location.href='tracking-system.html'" style="background:var(--og);color:white;border:none;padding:15px;border-radius:8px;font-weight:500;cursor:pointer;grid-column:1/-1;"><div style="font-size:20px;margin-bottom:5px;">🎯</div>Tracking System</button>
</div>
</div>
<script>function toggleQuickAccess(){const m=document.getElementById('quickAccessModal');m.style.display=m.style.display==='none'?'block':'none';}</script>
<?php endif; ?>
</body></html>