73 lines
2.3 KiB
PHP
Executable File
73 lines
2.3 KiB
PHP
Executable File
#!/usr/bin/php
|
|
<?php
|
|
/**
|
|
* Test IMAP Connection Script
|
|
* Usage: php test_imap.php <email> <password> <imap_host> [port]
|
|
*/
|
|
|
|
if ($argc < 4) {
|
|
echo "Usage: php test_imap.php <email> <password> <imap_host> [port]\n";
|
|
echo "Example: php test_imap.php test@gmail.com 'apppassword' imap.gmail.com 993\n";
|
|
exit(1);
|
|
}
|
|
|
|
$email = $argv[1];
|
|
$password = $argv[2];
|
|
$host = $argv[3];
|
|
$port = $argv[4] ?? 993;
|
|
|
|
echo "Testing IMAP connection...\n";
|
|
echo "Email: $email\n";
|
|
echo "Host: $host:$port\n\n";
|
|
|
|
$mailbox = '{' . $host . ':' . $port . '/imap/ssl}INBOX';
|
|
|
|
echo "Connecting to: $mailbox\n";
|
|
|
|
$startTime = microtime(true);
|
|
$imap = @imap_open($mailbox, $email, $password);
|
|
$elapsed = round((microtime(true) - $startTime) * 1000);
|
|
|
|
if ($imap) {
|
|
echo "✅ SUCCESS! Connected in {$elapsed}ms\n\n";
|
|
|
|
// Get mailbox info
|
|
$info = imap_mailboxmsginfo($imap);
|
|
echo "📬 Mailbox Info:\n";
|
|
echo " Total messages: {$info->Nmsgs}\n";
|
|
echo " Recent: {$info->Recent}\n";
|
|
echo " Unread: {$info->Unread}\n";
|
|
echo " Size: " . round($info->Size / 1024) . " KB\n";
|
|
|
|
// Check for spam folder
|
|
$folders = imap_list($imap, '{' . $host . ':' . $port . '/imap/ssl}', '*');
|
|
echo "\n📁 Available folders:\n";
|
|
foreach ($folders as $folder) {
|
|
$folderName = str_replace('{' . $host . ':' . $port . '/imap/ssl}', '', $folder);
|
|
echo " - $folderName\n";
|
|
}
|
|
|
|
imap_close($imap);
|
|
echo "\n✅ Connection test PASSED!\n";
|
|
} else {
|
|
echo "❌ FAILED!\n";
|
|
echo "Error: " . imap_last_error() . "\n";
|
|
|
|
// Suggestions
|
|
echo "\n💡 Suggestions:\n";
|
|
if (strpos($host, 'gmail') !== false) {
|
|
echo " - For Gmail, you need an App Password (not regular password)\n";
|
|
echo " - Enable 2FA first, then create App Password at:\n";
|
|
echo " https://myaccount.google.com/apppasswords\n";
|
|
echo " - Also enable IMAP in Gmail settings\n";
|
|
} elseif (strpos($host, 'outlook') !== false || strpos($host, 'office365') !== false) {
|
|
echo " - For Outlook/Office365 with 2FA, use App Password\n";
|
|
echo " - Make sure IMAP is enabled in account settings\n";
|
|
} else {
|
|
echo " - Check if IMAP is enabled in email settings\n";
|
|
echo " - Verify email and password are correct\n";
|
|
echo " - Try with port 993 (SSL) or 143 (TLS)\n";
|
|
}
|
|
exit(1);
|
|
}
|