0269bc6d28
Deux causes racines généraient ~170 erreurs/cycle (toutes les 10 min) sur la prod : "syncFolder[...] listMessages failed: Folder ... not found". 1. Double-encodage UTF7-IMAP : listFolders() stocke le chemin brut UTF7-IMAP, mais ImapMailProvider rappelait getFolder($path) qui ré-encode UTF8->UTF7-IMAP (webklex Client::getFolderByPath, utf7=false). Le caractère de shift "&" était ré-encodé, rendant introuvables les dossiers à accents/specials. Fix : getFolder($path, null, utf7: true) partout dans ImapMailProvider. 2. Dossiers fantômes jamais purgés : syncFolderStructure() gardait en DB les dossiers disparus du serveur, re-tentés à chaque cycle. Fix : syncFolderStructure() retourne le set des chemins présents sur le serveur ; doSyncAll() skip silencieusement les dossiers DB absents (conservés en DB pour les liens messages/tâches). Fallback historique si listFolders échoue. Test : testSyncAllSkipsFoldersNoLongerPresentOnServer.