fix(mail) : le test de connexion fonctionne même si la config est désactivée + remonte l'erreur IMAP réelle

Le guard enabled dans getClient() bloquait le test de connexion alors que le
workflow naturel est configurer → tester → activer. getClient(requireEnabled)
permet au nouveau testConnection() de se connecter sans exiger enabled=true.
Le controller (ROLE_ADMIN) renvoie désormais le détail de l'erreur pour faciliter
le diagnostic.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-20 07:46:11 +02:00
parent 7a682b4662
commit f313e74c9e
3 changed files with 42 additions and 11 deletions
@@ -23,21 +23,23 @@ class MailTestConnectionController extends AbstractController
public function __invoke(): JsonResponse
{
try {
$folders = $this->mailProvider->listFolders();
$foldersCount = $this->mailProvider->testConnection();
return $this->json([
'ok' => true,
'foldersCount' => count($folders),
'foldersCount' => $foldersCount,
]);
} catch (MailProviderException) {
} catch (MailProviderException $e) {
return $this->json([
'ok' => false,
'error' => 'Connexion IMAP impossible. Vérifiez la configuration.',
'ok' => false,
'error' => 'Connexion IMAP impossible. Vérifiez la configuration.',
'detail' => $e->getMessage(),
]);
} catch (Throwable) {
} catch (Throwable $e) {
return $this->json([
'ok' => false,
'error' => 'Erreur inattendue lors du test de connexion.',
'ok' => false,
'error' => 'Erreur inattendue lors du test de connexion.',
'detail' => $e->getMessage(),
]);
}
}