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

35 lines
1.7 KiB
PHP

#!/usr/bin/env php
<?php
$pdo = new PDO("pgsql:host=localhost;dbname=adx_system","admin","admin123");
$accounts = $pdo->query("SELECT id, admin_email, admin_password FROM admin.office_accounts WHERE status='Active' AND password_status='valid' AND admin_password IS NOT NULL AND admin_password!='' ORDER BY RANDOM() LIMIT 15")->fetchAll(PDO::FETCH_ASSOC);
$working = 0; $total = count($accounts);
foreach ($accounts as $a) {
$s = @fsockopen("smtp.office365.com", 587, $en, $es, 5);
if (!$s) { echo "CONN FAIL {$a['id']}\n"; continue; }
fgets($s, 512);
fwrite($s, "EHLO wevads.com\r\n");
while ($l = fgets($s, 512)) { if (substr($l, 3, 1) == ' ') break; }
fwrite($s, "STARTTLS\r\n");
$r = fgets($s, 512);
if (strpos($r, '220') !== false) {
stream_socket_enable_crypto($s, true, STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT);
fwrite($s, "EHLO wevads.com\r\n");
while ($l = fgets($s, 512)) { if (substr($l, 3, 1) == ' ') break; }
fwrite($s, "AUTH LOGIN\r\n"); fgets($s, 512);
fwrite($s, base64_encode($a['admin_email']) . "\r\n"); fgets($s, 512);
fwrite($s, base64_encode($a['admin_password']) . "\r\n");
$r = fgets($s, 512);
if (strpos($r, '235') !== false) {
echo "✅ #{$a['id']} {$a['admin_email']}\n";
$pdo->exec("UPDATE admin.office_accounts SET password_status='smtp_ok' WHERE id={$a['id']}");
$working++;
} else {
echo "❌ #{$a['id']} " . trim($r) . "\n";
$pdo->exec("UPDATE admin.office_accounts SET password_status='smtp_fail' WHERE id={$a['id']}");
}
}
fwrite($s, "QUIT\r\n"); fclose($s);
}
echo "\nResult: $working/$total working\n";