35 lines
1.7 KiB
PHP
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";
|