From 664637fa300c723bb26c36eb4f13d85c189a4375 Mon Sep 17 00:00:00 2001 From: idevakk <219866223+idevakk@users.noreply.github.com> Date: Sun, 9 Nov 2025 03:25:59 -0800 Subject: [PATCH] fix: add pre-check if imap is supported before trying to connect --- app/Filament/Pages/Settings.php | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/app/Filament/Pages/Settings.php b/app/Filament/Pages/Settings.php index 1521e53..e5be94e 100644 --- a/app/Filament/Pages/Settings.php +++ b/app/Filament/Pages/Settings.php @@ -502,11 +502,28 @@ class Settings extends Page implements HasForms private function testIMAP($imap): bool { try { + // First check if IMAP extension is available + if (!function_exists('imap_open')) { + Notification::make() + ->title('IMAP Extension Not Available') + ->body('The PHP IMAP extension is not loaded in your web server. Please check your Herd PHP configuration or restart your server.') + ->danger() + ->send(); + return false; + } + ZEmail::connectMailBox($imap); return true; } catch (\Exception $exception) { + $errorMessage = $exception->getMessage(); + + // Provide more helpful error messages + if (str_contains($errorMessage, 'IMAP extension must be enabled')) { + $errorMessage = 'IMAP extension is not properly loaded in the web server. Try restarting Herd or check your PHP configuration.'; + } + Notification::make() - ->title('Imap Error : '.$exception->getMessage()) + ->title('IMAP Error: ' . $errorMessage) ->danger() ->send(); return false;