# Dépanner &kmail;

## KMail n'envoie pas les messages

Certains utilisateurs qui n'arrivent pas à envoyer de messages s'aperçoivent que &SMTP; est manquant, alors que la page de Configuration semble correcte. Ceci peut parfois être résolu en ouvrant akonadiconsole et en y ajoutant un agent de distribution des messages.

Si l'ordinateur a été arrêté de manière soudaine (&pex; par une coupure de courant), les messages sortants restent parfois confinés dans la boîte d'envoi sans qu'un message d'erreur ne soit généré. Ceci peut être dû au fait que, lors de l'arrêt, l'agent de distribution des messages a été mis hors ligne dans son fichier de configuration et qu'il reste ainsi suite au crash. Modifiez le fichier suivant :

`~/.config/akonadi/agent_config_akonadi_maildispatcher_agent`

et transformez

    [Agent]
    Online=false

en

    [Agent]
    Online=true

## Démarrage propre après un échec de migration

Au cas où la migration de &kmail; 1 vers &kmail; 2 a échoué ou si ensuite vous avez des anomalies de fonctionnement, vous pouvez essayer d'effectuer une importation propre de vos données plutôt que de migrer la configuration existante. Veuillez noter que cette procédure nécessite plus de paramétrage manuel ; il vous convient donc de ne l'effectuer que si vous êtes suffisamment à l'aise pour reconfigurer vos comptes &kmail;. Veuillez aussi noter que cela peut engendrer une grande quantité de trafic pour les ressources &imap;.

1. Arrêtez Akonadi et les applications qui lui sont corrélées

   quittez &kmail;/&kontact;/&korganizer;, et saisissez cette commande :

   ``akonadictl stop``

   Assurez-vous qu'aucun processus Akonadi ou MySQL ne soit en cours d'exécution :

   ``ps ux | grep mysql``

   ``ps ux | grep akonadi``

   Ces commandes ne devraient rien afficher en plus du processus grep.

2. Supprimez l'ancienne base de données Akonadi et sa configuration

   Supprimez les dossiers suivants

   - `~/.local/share/akonadi`

   - `~/.config/akonadi`

   Supprimez aussi dans `~/.kde4/share/config` les fichiers qui commencent par akonadi

3. Redémarrez le serveur Akonadi

   ``akonadictl start``

4. Recréez les comptes

   Maintenant vous pouvez recréer vos comptes. Vous pouvez utiliser pour cela soit &kmail; (&kontact;), soit l'outil akonadiconsole.

   Depuis &kmail; : Configuration Configurer KMail Comptes et faites Ajouter.

   Si vous utilisez &imap;, ajoutez un nouveau serveur de courriels &imap;. Si vous souhaitez pouvoir lire les mails lorsque vous êtes déconnectés, activez le mode déconnecté dans l'onglet Avancé. Assurez-vous que vous êtes enregistrés à tous les dossiers importants.

   Vous avez peut-être déjà une ressource Dossier local. Elle pointe vers un dossier maildir local existant. Vous pouvez soit modifier ce dossier pour qu'il pointe vers vos dossiers maildir existants, soit ajouter une nouvelle ressource pour vos messages enregistrés en local.

   Lorsque vous ajoutez une ressource maildir, vous avez le choix entre Dossier de courriers &kmail; et Maildir. Vous devriez choisir Maildir, à moins que vous ayez déjà un dossier mélangé contenant aussi bien des dossiers maildir que des fichiers mbox. Pour des fichiers mbox indépendants, tels que celui qui se trouve dans `/var/spool/mail`, vous pouvez définir un nouveau dossier MBox.

   Ajoutez aussi les comptes POP3. Si vous avez plusieurs dossiers locaux définis, choisissez dans l'onglet Avancé le dossier de destination pour les messages nouvellement téléchargés.

   Pour tous les comptes, configurez l'intervalle de vérification du courrier électronique. Pour les dossiers locaux, désactivez l'intervalle de vérification. Désactivez aussi Inclure dans la vérification manuelle du courrier électronique dans les Options de réception.

   Ajoutez les comptes d'expédition (SMTP)

5. Corrigez les filtres, les identités et les dossiers favoris

   Si vous avez des filtres coté client (ce qui est courant avec les comptes POP3), allez dans Configuration Configurer les filtres et corrigez le dossier de destination pour chaque filtre, car il est probablement faux. Autrement les messages risquent de se retrouver dans des dossiers imprévus.

   Le filtrage de pourriel ne fonctionne pas comme prévu (en tous cas dans la version 4.7.3 et les versions antérieures). En effet, la règle créée par l'assistant n'envoie pas les pourriels dans le dossier que vous avez défini.

   La solution de contournement est de modifier les balisages spam et spam unsure (si le filtre de spam que vous utilisez prend en charge cette dernière fonctionnalité). Plutôt que de regarder les champs d'état `X-Spam-Status` dans l'en-tête des messages, faites regarder Partout dans les en-têtes pour X-`votre filtre de pourriel`-Classification: SPAM or unsure. Vérifiez les filtres créés par l'assistant, et copiez la partie contient. Par exemple pour Spambayes : X-Spambayes-Classification: spam et X-Spambayes-Classification: unsure.

   Vous devez aussi vérifier les paramètres d'identité et définir les dossiers de messages envoyés, de brouillons et de modèles afin qu'ils pointent vers les bons dossiers. Pour cela, allez sur Configuration Configurer KMail Identités, et modifiez les identités. Allez ensuite sur l'onglet Avancées et modifiez les paramètres des dossiers sus-mentionnés.

   Assurez-vous par la même occasion que vos Dossiers favoris sont ceux que vous avez choisis précédemment.

6. Effectuez un contrôle des messages

   Relevez le courriel pour vos comptes. Il est conseillé d'effectuer le relevé compte par compte.

   Commencez par vérifier si vous avez &imap;.

   Ensuite, contrôlez (importez) vos messages locaux. Une solution est d'effectuer un contrôle complet en une seule fois : Fichier Relever le courriel dans et choisir le compte local. Une autre solution est de cliquer sur les dossiers un par un, ce qui devrait initier le contrôle de chaque dossier cliqué. Vous pouvez également effectuer un clic droit sur le nom du dossier et sélectionner Mettre à jour le dossier.

   L'importation initiale peut prendre d'autant plus de temps et de mémoire que les dossiers possèdent de messages. Dans ce cas, un contrôle dossier par dossier est préférable. Si, lorsque le contrôle est terminé (que ce soit dossier par dossier ou un contrôle complet) l'utilisation de la mémoire est toujours élevée, vous pouvez redémarrer —comme vu précédemment—. Vous pouvez aussi redémarrer uniquement l'agent maildir en utilisant `akonadiconsole`. N'ayez crainte, l'utilisation de la mémoire ne sera élevée que lors de l'importation initiale.

   Effectuez un contrôle des messages pour vos ressources POP3.

Normalement, après ces différentes étapes, &kmail; devrait bien fonctionner.

## Les dossiers locaux sont ajoutés continuellement

Dans certains cas vous pouvez avoir un compte MAILDIR qui pointe vers un endroit donné (tel que `$HOME/Mail`), mais vous avez en même temps un dossier Dossiers locaux dans la liste de dossiers avec les sous-dossiers Boîte de réception / Boîte d'envoi / Corbeille / Brouillons / &etc;. &kmail; continue à mettre des messages dans ces dossiers, en particulier les messages envoyés.

Le problème est que certains dossiers sont des dossiers spéciaux (dossiers système), c'est-à-dire que si vous ne les avez pas &kmail; ne peut fonctionner correctement. C'est pour cela que ces dossiers sont continuellement recréés.

Actuellement il n'y a pas de méthode facile pour corriger cela, dans l'interface utilisateur, pour tous les types de dossiers spéciaux. Voici ce que vous pouvez faire :

1. Les dossiers Messages envoyés, Brouillons et Modèles sont configurables pour chaque entité. Allez sur Configuration Configurer KMail Identités, et sélectionnez votre identité. Cliquez Modifier, allez sur l'onglet Avancées et définissez le bon endroit que ces dossiers doivent pointer.

2. La Boîte de réceptionpar défaut est configurable pour chaque compte POP3. Allez sur Configuration Configurer KMail Comptes, sélectionnez votre compte POP3, cliquez Modifier, allez sur l'onglet Avancées et définissez le Dossier de destination.

3. Pour les comptes IMAP vous pouvez définir le dossier Corbeille. Faites comme ci-dessus.

4. Le plus embêtant est corriger la Boîte d'envoi. Commencez par trouver le fichier `specialmailcollectionsrc` dans le dossier de configuration de &kde; (`$HOME/.kde4/share/config` ou semblable). Ce fichier contient quelque chose de la sorte :

`[SpecialCollections] DefaultResourceId=akonadi_maildir_resource_0`

Maintenant démarrez akonadiconsole. Dans l'onglet Agents, localisez le compte pour le dossier Boîte d'envoi, cliquez dessus, et notez l'identifiant qui apparaît dans la partie inférieure (`akonadi_maildir_resource_XXX` ou semblable). Remplacez l'identifiant dans le fichier `specialmailcollectionsrc` précédemment décrit, et inscrivez celui-ci.

Redémarrez ensuite akonadi (vous pouvez le faire depuisakonadiconsole, Server Restart Server ou depuis la ligne de commande en saisissant :

`akonadictl restart`

Maintenant supprimez les Dossiers locaux que vous ne voulez plus.

Si ce problème continue à apparaître, et l'Agent de distribution des messages plante toujours, vous devez encore faire une modification dans akonadiconsole. Allez sur l'onglet Browser, trouvez la boîte d'envoi que vous voulez utiliser, effectuez un clic-droit sur elle, sélectionnez Folder Properties, onglet Attributes, saisissez `SpecialCollectionAttribute` puis cliquez Add, double-cliquez la valeur Value à proximité de SpecialCollectionAttribute et saisissez `outbox`. Ajoutez aussi un autre attribut ; l'attribut « name » doit être ENTITYDISPLAY et sa valeur `("outbox" "mail-folder-outbox" "" ())` (effectuez simplement un copier-coller depuis ici). Redémarrez akonadi. Maintenant vous devriez pouvoir supprimer définitivement le compte de dossiers locaux.

## Vous obtenez le message Unable to fetch item from backend

Il peut y avoir de nombreuses raisons possibles, et l'équipe &kmail; souhaite les adresser au plus vite. En attendant, voici quelques solutions de contournement :

Première solution de contournement

- - modifiez `~/.local/share/akonadi/mysql.conf`

  - Dans la section [mysql], ajoutez : `binlog_format=row`

  Si cela ne fonctionne pas, essayez alors la deuxième solution ci-dessous.

Deuxième solution de contournement

- Dans cette solution-ci il est surtout question de redémarrer, afin que &kmail; puisse aller chercher ces satanés messages... Certaines étapes possibles:

  Utiliser &Alt;F2 ou &konsole; et saisissez : ``kquitapp kmail``. Attendez une minute, puis saisissez ``akonadictl stop``, attendez encore une minute, et saisissez``akonadictl start``, attendez de nouveau une minute, et saisissez ``kmail``. Cela arrête &kmail; (fermeture de toutes les fenêtres), le moteur de traitement de &kmail;, redémarre ce moteur de traitement de &kmail;, et redémarre ensuite &kmail;. Le fait d'avoir une connexion internet fonctionnelle augmente les chances de réussite. Parfois, vous pouvez juste saisir ``kquitapp kmail``, attendre une minute, et redémarrer &kmail;. Mais souvent plusieurs redémarrages sont nécessaires. Les raisons de ce comportement ne sont pas encore claires, mais une mauvaise connexion internet semble être un facteur aggravant.

Veuillez voir aussi ci-après comment l'application akonadiconsole peut être utile.

## Vos messages ne sont pas expédiez, et vous n'obtenez aucun message d'erreur

Si &kmail; n'expédie pas les courriels sans rien communiquer, il est possible que l'agent responsable de l'envoi des messages se soit enlisé. Bien sûr, vous devez vous assurer que vous avez effectivement une connexion réseau pour que les messages soient expédiés !

Pour remédier à cela, il peut être utile d'interrompre l'action en cours et de la redémarrer. Tout d'abord, quittez &kmail; en utilisant &krunner; (&Alt;F2) ou &konsole; et saisissez : ``kquitapp kmail``. Veuillez noter qu'un classique &Alt;F4 ou Fichier Quitter n'est pas suffisant ! Attendez une minute, puis redémarrez &kmail;. Maintenant démarrez akonadiconsole avec &krunner; (&Alt;F2) ou &konsole;. Choisissez l'Agent de distribution des messages, effectuez un clic-droit et interrompez l'action en cours. Probablement, des messages d'erreur s'afficheront. retournez dans &kmail; et choisissez Fichier Envoyer les messages en attente. Maintenant cela devrait fonctionner. Si ce n'est pas le cas, plutôt que d'interrompre l'action en cours, essayez de basculer l'état hors-ligne / en-ligne de l'Agent de distribution des message. Vous pouvez encore tout redémarrer comme mentionné dans la solution 2 du problème décrit précédemment.

akonadiconsole peut être très utile pour bon nombre de situations, car il présente tous les agents, c'est-à-dire tous les composants distincts du moteur de traitement de &kmail;. Vous pouvez les arrêter et démarrer, les mettre en mode hors connexion, interrompre les actions en cours, &etc;. Ce programme peut être très utile quand les choses s'enlisent.