#!/usr/bin/php [port] */ if ($argc < 4) { echo "Usage: php test_imap.php [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); }