# Risoluzione dei problemi di &kmail;

## KMail non invia messaggi di posta

Alcuni utenti si accorgono che la posta non viene spedite, e sembra che il server &SMTP; manchi, anche se la pagina delle Impostazioni appare corretta. È stato segnalato che si può risolvere aprendo akonadiconsole e aggiungendo un agente per la consegna della posta (Mail Dispatcher Agent).

Se il computer è stato spento di colpo in modalità sospensione (⪚ per mancanza di corrente) a volte i messaggi di posta semplicemente rimangono nella posta in uscita senza essere spediti, ma senza neppure che venga generato alcun messaggio di errore. Questo può essere dovuto al fatto che l'agente per la consegna della posta è stato impostato in modo fuori linea nel file di configurazione durante la sospensione e questo valore non è stato cambiato a causa dello spegnimento. Modifica il file seguente:

`~/.config/akonadi/agent_config_akonadi_maildispatcher_agent`

e modifica

    [Agent]
    Online=false

in

    [Agent]
    Online=true

## Avvio pulito dopo una migrazione non riuscita

Nel caso in cui la migrazione da &kmail; 1 a &kmail; 2 fallisca o riscontri problemi dopo di essa, puoi provare ad effettuare un'importazione pulita dei dati invece di migrare le impostazioni esistenti. Attenzione: questa procedura richiede una maggiore configurazione manuale, eseguila quindi solo se sei ritieni di poter configurare di nuovo i tuoi account &kmail;; inoltre può generare un notevole traffico di rete per le risorse &imap;.

1. Ferma Akonadi e le applicazioni correlate

   ferma &kmail;/&kontact;/&korganizer; ed esegui questo comando:

   ``akonadictl stop``

   Assicurati che nessuno processo Akonadi o MySQL sia in esecuzione:

   ``ps ux | grep mysql``

   ``ps ux | grep akonadi``

   Non dovrebbero mostrare niente, a parte il processo grep stesso.

2. Rimuovi i vecchi banca dati e configurazione di Akonadi

   Elimina le seguenti cartelle

   - `~/.local/share/akonadi`

   - `~/.config/akonadi`

   Elimina anche i file che iniziano per akonadi in `~/.kde4/share/config`

3. Riavvia il server Akonadi

   ``akonadictl start``

4. Aggiungi nuovamente gli account

   Adesso è il momento di aggiungere nuovamente i tuoi account. Puoi usare &kmail; (&kontact;) per questo, o puoi usare lo strumento akonadiconsole.

   In &kmail;: Impostazioni Configura KMail Account e usa Aggiungi.

   Se usi &imap;, aggiungi un nuovo Server di posta IMAP. Se vuoi usare la modalità disconnessa (in modo da poter leggere la posta fuori linea), abilitala nella scheda Avanzate. Controlla di aver attivato le sottoscrizioni per tutte le cartelle importanti.

   Potresti avere già una risorsa di tipo Cartella locale. Questa fa riferimento da una cartella maildir locale. Puoi sia modificare questa perché punti alle cartelle maildir esistenti o puoi aggiungere una nuova risorsa per i messaggi di posta locali.

   Quando aggiungi una risorsa maildir puoi scegliere tra Cartella di posta di &kmail; o Maildir. A meno che tu non abbia una cartella mista contenente sia folder maildir sia file mbox, dovresti scegliere Maildir. Per file mbox indipendenti, come quelli in `/var/spool/mail`, puoi impostare una nuova cartella MBox.

   Aggiungi anche gli account POP3. Nel caso in cui avessi più Cartelle locali impostate, scegli nella scheda Avanzate la cartella di destinazione dove vuoi che vadano a finire i nuovi messaggi di posta.

   Per tutti gli account, configura l'intervallo di controllo della posta. Disabilita il controllo periodico per le cartelle locali ed anche Includi nel controllo della posta manuale nelle Opzioni di recupero.

   Aggiungi gli account di invio (SMTP).

5. Correggi i filtri, le identità e le cartelle preferite

   Se hai filtri lato client (situazione comune con la posta POP3), vai in Impostazioni Configura filtri e correggi la cartella di destinazione per i filtri, molto probabilmente non sono corretti. Altrimenti i messaggi di posta finiranno in cartelle che non ti aspetti.

   Il riconoscimento dello spam (almeno nella versione 4.7.3 e precedenti) non funziona come ci si aspetta, nel senso che le regole create dalla procedura guidata non inviano lo spam nella cartella che hai definito.

   La soluzione per questo è cambiare spam e spam unsure (quest'ultimo, se supportato dal filtro per lo spam che usi) perché, invece del campo Status nell'intestazione `X-Spam-Status`, cerchino Ovunque nelle intestazioni dei valori di tipo X-`il_tuo_filtro_di_spam`-Classification: SPAM or unsure. Controlla i filtri creati dalla procedura guidata e copia la parte contiene. Esempi per Spambayes: X-Spambayes-Classification: spam e X-Spambayes-Classification: unsure.

   Inoltre devi verificare le impostazioni relative all'identità e impostare le cartelle posta inviate, bozze e modelli perché facciano riferimento alle cartelle corrette. Per fare questo vai in Impostazioni Configura KMail Identità, modifica l'identità, accedi alla scheda Avanzate e modifica le impostazioni delle cartelle summenzionate.

   Verifica inoltre che le tue Cartelle preferite siano quelle che hai scelto in precedenza.

6. Avvia il controllo della posta

   Inizia il controllo della posta per i tuoi account. Si consiglia di eseguire questa operazione un account alla volta.

   Innanzitutto controlla &imap;, se lo utilizzi.

   Quindi verifica (importa) la tua posta locale. Una soluzione consiste nell'effettuare un controllo completo in una volta sola, tramite File Controlla posta in e selezionando l'account locale; un'altra soluzione consiste nel fare clic sulle cartelle una per una, questa operazione dovrebbe avviare il controllo per la cartella selezionata (in alternativa fai clic col pulsante destro sul nome della cartella e seleziona Aggiorna cartella).

   L'importazione iniziale può essere lenta e usare molta memoria, specialmente se hai cartelle con molti messaggi di posta. In questo caso un controllo per-cartella è preferibile. Se il controllo (completo o di una singola cartella) termina e l'uso della memoria è ancora elevato, puoi riavviare il server Akonadi — come visto precedentemente — o solo l'agente Maildir, se usi `akonadiconsole`. Non preoccuparti, questo elevato uso di memoria è solo per l'importazione iniziale.

   Avvia il controllo della posta per le risorse POP3.

Se tutto va bene, dopo questi passi la tua esperienza d'uso di &kmail; sarà migliore.

## Le cartelle locali sono aggiunte ripetutamente

In alcuni casi potresti ritrovarti con un account maildir che fa riferimento ad un certo percorso (come `$HOME/Mail`), pur avendo ancora una cartella Cartelle locali nell'elenco delle cartelle con sottocartelle Posta in arrivo/Posta inviata/Cestino/Bozze/&etc; in cui &kmail; continua a mettere i messaggi di posta, specialmente quelli della posta in uscita.

Il problema è che alcune cartelle sono marcate come cartelle speciali (cartelle di sistema) e se non le hai &kmail; non può funzionare correttamente. Questo è il motivo per cui continua a ricreare quella cartella.

Attualmente non c'è un modo semplice per cambiare questo nell'interfaccia per tutti i tipi di cartelle speciali. Ecco quello che puoi fare:

1. Le cartelle posta inviata, bozze e modelli sono configurabili per ogni identità. Vai in Impostazioni Configura KMail Identità, seleziona la tua identità, fai clic su Modifica, passa alla scheda Avanzate e imposta le cartelle perché puntino alla posizione corretta.

2. La cartella di Posta in arrivo predefinita è configurabile per ogni account POP3. Vai in Impostazioni Configura KMail Account, seleziona il tuo account POP3, fai clic su Modifica, passa alla scheda Avanzate e imposta la Cartella di destinazione.

3. Per gli account IMAP puoi configurare la cartella Cestino. Fai come spiegato precedentemente. Il nome dell'impostazione è Cartella cestino.

4. La parte più problematica riguarda la posta in uscita. Per prima cosa, localizza il file `specialmailcollectionsrc` nella cartella di configurazione di &kde; (`$HOME/.kde4/share/config` o simile). Conterrà qualcosa come:

`[SpecialCollections] DefaultResourceId=akonadi_maildir_resource_0`

Adesso esegui akonadiconsole, nella scheda Agents localizza il tuo account locale in cui vuoi avere la cartella della posta in uscita, fai clic su di esso ed annota l'identificatore che appare nella parte bassa (`akonadi_maildir_resource_XXX` o simile). Inserisci questo identificatore nel summenzionato file `specialmailcollectionsrc` sostituendo il valore esistente.

Quindi riavvia akonadi (puoi farlo tramite akonadiconsole, Server Restart server o dalla riga di comando tramite:

`akonadictl restart`

Adesso rimuovi le Cartelle locali che non vuoi usare più.

Se appaiono nuovamente ed il Mail Dispatcher Agent va ancora in crash, devi effettuare un'altra operazione in akonadiconsole. Vai nella scheda Browser, trova la casella in uscita che vuoi usare, fai clic su di essa con il pulsante destro del mouse, seleziona Folder Properties, scheda Attributes, inserisci `SpecialCollectionAttribute`, poi fai clic su Add, doppio clic su Value vicino a SpecialCollectionAttribute ed inserisci `outbox`. Aggiungi anche un altro attributo, il cui nome deve essere ENTITYDISPLAY ed il relativo valore `("outbox" "mail-folder-outbox" "" ())` (semplicemente copia-e-incolla da qua). Riavvia akonadi e adesso dovresti essere in grado di rimuovere completamente l'account di cartelle locali non necessario.

## Ottieni l'errore «Unable to fetch item from backend» quando entri in una cartella IMAP

Le ragioni per cui questo accade sono diverse ed è qualcosa che gli sviluppatori di &kmail; sperano di sistemare nel tempo. Nel frattempo ci sono alcuni espedienti:

Espediente 1

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

  - Nella sezione [mysql] aggiungi: `binlog_format=row`

  Se non funziona, prova l'espediente 2 (di seguito)

Espediente 2

- Si tratta fondamentalmente di riavviare, in modo che &kmail; possa recuperare questi elementi molesti... Alcuni possibili passi:

  Usa &Alt;F2 o &konsole; per digitare: ``kquitapp kmail``, quindi aspetta un minuto, quindi ``akonadictl stop``, aspetta un minuto, digita ``akonadictl start``, aspetta un minuto, digita ``kmail``. Questo ferma &kmail; (chiudendone tutte le finestre), ferma il motore di &kmail;, avvia il motore di &kmail;, avvia &kmail;. La presenza di una connessione ad Internet funzionante aumenta le probabilità di successo. Talvolta puoi anche limitarti ad un ``kquitapp kmail``, aspettare un minuto ed avviare nuovamente &kmail;. Spesso sembrano essere necessari più riavvii. Non è chiara la ragione per cui ciò accade, ma è più probabilità che accada con cattive connessioni di rete.

Vedi anche il punto successivo per capire come akonadiconsole può essere utile.

## La tua posta non viene spedita, senza alcun messaggio d'errore

Se &kmail; non invia i messaggi e non dice niente, l'agente responsabile per l'invio dei messaggi potrebbe essere bloccato. Ovviamente devi assicurarti di avere connettività di rete per poter inviare messaggi di posta!

Per sistemare questo problema, interrompere l'azione corrente e riavviarla può aiutare. Per prima cosa, chiudi &kmail; usando &krunner; (&Alt;F2) o &konsole; e digitando ``kquitapp kmail``. Note che un normale &Alt;F4 o File Esci non sono sufficienti! Aspetta un minuto, quindi riavvia &kmail;. Quindi esegui akonadiconsole tramite &krunner; (&Alt;F2) o &konsole;. Passa al Mail Dispatcher Agent (agente per la consegna della posta), fai clic con il pulsante destro del mouse e interrompi l'azione in corso. Probabilmente vedrai alcuni messaggi di errore. Torna a &kmail; e scegliFile Spedisci messaggi in attesa. Adesso dovrebbe poter funzionare. In caso contrario, invece di interrompere l'azione in corso, prova a cambiare lo stato in linea/fuori linea del Mail Dispatcher Agent o riavviare i vari oggetti come descritto nell'espediente 2 per il problema precedente a questo.

akonadiconsole può essere molto utile in varie situazioni, dato che mostra tutti gli agenti, i vari componenti separati del motore di &kmail;. Puoi fermarli ed avviarli, metterli in modalità fuori linea, interrompere le azioni in corso &etc;. Può essere molto utile quando c'è una situazione di stallo.