<chapter id="troubleshooting">

<chapterinfo>
<authorgroup>
<author>
  <personname>
  <firstname
>Частину цієї глави створено на основі сторінки <ulink url="https://userbasekde.org/Special:MyLanguage/KMail/FAQs_Hints_and_Tips"
>KMail/Підказки і настанови</ulink
> UserBase KDE у 2012 році.</firstname>
  </personname>
</author>
<author
>&David.Bryant; &David.Bryant.mail; </author>
<othercredit role="translator"
><firstname
>Юрій</firstname
><surname
>Чорноіван</surname
><affiliation
><address
><email
>yurchor@ukr.net</email
></address
></affiliation
><contrib
>Переклад українською</contrib
></othercredit
> 
</authorgroup>
<date
>8 серпня 2021 року</date>
<releaseinfo
>5.14.2 (Програми 20.04.2)</releaseinfo>
</chapterinfo>

<title
>Усування вад у &kmail;</title>

<sect1 id="introduction-to-akonadi">
<title
>Вступ до &akonadi;</title>

  <para
>&kmail; перебуває у стані активної розробки з 1997 року. Протягом років розробки було виявлено багато вад. Багато з них було усунено. Якщо вам цікава історія цих давніх вад, будь ласка ознайомтеся зі сторінкою <ulink url="https://userbase.kde.org/Special:MyLanguage/KMail/FAQs_Hints_and_Tips"
>KMail/Підказки і настанови</ulink
> у вікі UserBase &kde;. Крім того, можете відвідати <ulink url="https://bugs.kde.org"
>сторінку основної системи стеження за вадами &kde;</ulink
>, щоб дізнатися про історію свіжіших вад.</para>

  <para
>На поточний момент (2021 рік) багато з проблем, з якими стикаються користувачі &kmail;, пов'язано із сервером &akonadi;. &akonadi; є допоміжною програмою, яка працює як проміжна ланка між &kmail; (а також усіма програмами для керування особистими даними) та фоновою службою бази даних загального призначення (найпоширенішим варіантом є mysqld). Вона також обслуговує обмін даними між процесами різних частин програм для керування особистими даними. Залежно від способу налаштування вашої системи, &akonadi; може запускатися під час процедури завантаження або входу до системи. Також програма може запускатися лише після запуску програми для керування особистими даними (наприклад &kmail;, &kaddressbook; або &kontact;).</para>

  <para
>Передбачено дві програми, за допомогою яких можна взаємодіяти зі сервером &akonadi; безпосередньо: <code
>akonadictl</code
> (програма для орієнтованого на термінал керування) і <code
>akonadiconsole</code
> (програма з графічним інтерфейсом). Тут наведено короткі відомості щодо обох цих програм.</para>
  <para
>&nbsp;</para
><!-- add whitespace -->

    <sect2 id="intro-to-akonadictl">
    <title
>Керівна програма akonadictl</title>
    <screenshot>
      <screeninfo
>Звіт щодо стану &akonadi;</screeninfo>
        <mediaobject>
          <imageobject>
            <imagedata fileref="akonadictl.png" format="PNG"/>
          </imageobject>
          <textobject>
            <phrase
>Звіт щодо стану &akonadi;</phrase>
          </textobject>
          <caption>
              <para
>Звіт щодо стану akonadictl, запущено 32 агенти</para>
          </caption>
        </mediaobject>
    </screenshot>
    <para
>&nbsp;</para
><!-- add whitespace -->

    <para
>На попередньому знімку вікна проілюстровано одну з команд, якою можна скористатися у програмі <code
>akonadictl</code
>. Нижче наведено усі команди, які розпізнаються <code
>akonadictl</code
>.</para>

    <para
><screen
>~$ akonadictl start</screen
>Запускає сервер &akonadi;.</para>
    <para
><screen
>~$ akonadictl stop</screen
>Завершує роботу сервера &akonadi;.</para>
    <para
><screen
>~$ akonadictl restart</screen
>Завершує роботу сервера &akonadi;, а потім запускає його знову.</para>
    <para
><screen
>~$ akonadictl status</screen
>Виводить звіт щодо стану, проілюстрований на попередньому знімку вікна.</para>
    <para
><screen
>~$ akonadictl instances</screen
>Виводить список екземплярів сервера &akonadi; (можлива паралельна робота декількох таких екземплярів).</para>
    <para
><screen
>~$ akonadictl vacuum</screen
>Спорожнює сховище даних &akonadi; або принаймні намагається виконати спорожнення.</para>
    <para
><screen
>~$ akonadictl fsck</screen
>Виконує перевірку цілісності файла. Виведені цією командою дані можуть бути доволі об'ємними, особливо якщо ви додавали власні теки до &kmail;. Скористайтеся цією версією команди (передавши виведені дані до grep конвеєром) для того, щоб перевірити цілісність вашої бази даних &akonadi; без зайвих даних.</para>
    <para>

<screen
>~ $ akonadictl fsck 2
>&amp;1 | grep ^Found
Found 1106 external files.
Found 1106 external parts.
Found no unreferenced external files.
Found 0 parts to be moved to external files
Found 0 parts to be moved to database
Found 1 collections without RID.
Found 13 items without RID.
Found 0 dirty items.</screen
>RID — абревіатура від RemoteId, назви іменованого поля у таблицях бази даних mysql. Якщо існує хоч один запис без RID, маємо незначну проблему, яку має бути виправлено. Якщо маємо хоч один зіпсований (dirty) запис, маємо значну проблему, яку <emphasis
>слід</emphasis
> виправити. Див. <link linkend="resource-conflict-error"
>«Не вдалося отримати запис...»</link
>, а також <link linkend="dealing-with-dirt"
>Усування записів &kmail; «в обробці»</link
> нижче. </para>
    <para
>&nbsp;</para
><!-- add whitespace -->
    </sect2>

    <sect2 id="intro-to-akonadiconsole">
    <title
>Програма akonadiconsole</title>
    <screenshot>
      <screeninfo
>Як виглядає вікно akonadiconsole</screeninfo>
        <mediaobject>
          <imageobject>
            <imagedata fileref="akonadiconsole.png" format="PNG"/>
          </imageobject>
          <textobject>
            <phrase
>Як виглядає вікно akonadiconsole</phrase>
          </textobject>
          <caption>
              <para
>Робота akonadiconsole</para>
          </caption>
        </mediaobject>
    </screenshot>
    <para
>&nbsp;</para
><!-- add whitespace -->

    <para
>Програма <code
>akonadiconsole</code
> надає вам дванадцять різних «оглядових вікон» до внутрішньої частини програм для керування особистими даними. Нижче наведено коротке резюме щодо кожної із доступних панелей перегляду.</para>

    <variablelist>
      <varlistentry id="ak-console-agents">
        <term
>Вкладка <guilabel
>Agents</guilabel
>.</term>
        <listitem
><para
>Тут ви зможете побачити список агентів користувача (засобів обробки).</para
></listitem>
      </varlistentry>

      <varlistentry id="ak-console-browser">
        <term
>Вкладка <guilabel
>Browse</guilabel
>.</term>
        <listitem
><para
>На цій вкладці ви побачите огляд різних збірок даних, супровід яких виконує &akonadi;, упорядкованих у деревоподібну ієрархію, де показано, скільки записів зберігається у кожній зі збірок.</para
></listitem>
      </varlistentry>

      <varlistentry id="ak-console-debugger">
        <term
>Вкладка <guilabel
>Debugger</guilabel
>.</term>
        <listitem
><para
>Тут ви можете увімкнути або вимкнути діагностику і переглянути журнал діагностичних повідомлень.</para
></listitem>
      </varlistentry>

      <varlistentry id="ak-console-logging">
        <term
>Вкладка <guilabel
>Logging</guilabel
>.</term>
        <listitem
><para
>За допомогою цієї вкладки ви можете переглядати повідомлення, які надсилають різні компоненти &akonadi;.</para
></listitem>
      </varlistentry>

      <varlistentry id="ak-console-db-browser">
        <term
>Вкладка <guilabel
>DB Browser</guilabel
>.</term>
        <listitem
><para
>Цією вкладкою можна скористатися для зондування бази даних mysql. У базі даних багато різних таблиць.</para
></listitem>
      </varlistentry>

      <varlistentry id="ak-console-db-console">
        <term
>Вкладка <guilabel
>DB Console</guilabel
>.</term>
        <listitem
><para
>Тут ви можете надсилати запити до бази даних mysql.</para
></listitem>
      </varlistentry>

      <varlistentry id="ak-console-query">
        <term
>Вкладка <guilabel
>Query Debugger</guilabel
>.</term>
        <listitem
><para
>Цією вкладкою можна скористатися для вмикання і вимикання діагностики запитів до бази даних. &kmail; опитує базу даних mysql багато разів протягом лише декількох секунд; виведені дані можуть бути доволі об'ємними.</para
></listitem>
      </varlistentry>

      <varlistentry id="ak-console-tracker">
        <term
>Вкладка <guilabel
>Job Tracker</guilabel
>.</term>
        <listitem
><para
>Програми для керування особистими даними виконують різні функції, ініціюючи «завдання». Цією вкладкою можна скористатися для вмикання та вимикання стеження за завданнями.</para
></listitem>
      </varlistentry>

      <varlistentry id="ak-console-scheduler">
        <term
>Вкладка <guilabel
>Resources Schedulers</guilabel
>.</term>
        <listitem
><para
>На цій вкладці ви можете бачити, у яких ресурсах виникає потреба при виклику певної функції керування особистими даними. Ви зможете переглянути список усіх ресурсів &akonadi; у вашій системі у каталозі <filename
>~/.config/akonadi/</filename
>.</para
></listitem>
      </varlistentry>

      <varlistentry id="ak-console-notif-monitor">
        <term
>Вкладка <guilabel
>Notification Monitor</guilabel
>.</term>
        <listitem
><para
>Цією вкладкою можна скористатися для спостереження за сповіщеннями, які надсилають різноманітні ресурси &akonadi;.</para
></listitem>
      </varlistentry>

      <varlistentry id="ak-console-search">
        <term
>Вкладка <guilabel
>Item Search</guilabel
>.</term>
        <listitem
><para
>За допомогою цієї вкладки можна здійснювати загальний пошук. Пошук можна обмежити календарем, записом контакту, повідомленням електронної пошти або нотаткою.</para
></listitem>
      </varlistentry>

      <varlistentry id="ak-console-monitors">
        <term
>Вкладка <guilabel
>Monitors</guilabel
>.</term>
        <listitem
><para
>Тут буде показано усі засоби спостереження, які запущено у &akonadi;, а також їхні властивості. Спостереження ведеться за агентами, ресурсами і навіть деякими програмами.</para
></listitem>
      </varlistentry>
    </variablelist>

    </sect2>

</sect1>

<!-- <sect1 id="kmail2-doesnt-send-mail">
<title
>KMail doesn't send mail</title>
  <para
>Some users find that mail does not go out, and it appears that &SMTP; is missing, even though the
  <guilabel
>Settings</guilabel
> page looks correct.  It has been reported that this is cured by opening
  <application
>akonadiconsole</application
> and adding Mail Dispatcher Agent.</para
>ttps://bugs.kde.org/show_bug.cgi?id=283682
  <para
>If the computer was suddenly turned off in suspend mode (&eg; by a power cut) sometimes e-mails simply
  stay in the outbox without being sent, but no error message is generated either. This may be due to the fact
  that the Mail Dispatcher Agent is set to <quote
>offline</quote
> in the configuration file during suspend and
  is not changed back due to the crash. Edit the following file:</para>
  <para
><filename
>~/.config/akonadi/agent_config_akonadi_maildispatcher_agent</filename
> and change</para>
  <para
><screen
>[Agent] Online=false</screen
></para>
  <para
>to</para>
  <para
><screen
>[Agent] Online=true</screen
></para>
</sect1
> --> <!-- This section removed 8/8/2021. -->

<!-- <sect1 id="clean-start-after-a-failed-migration"
><title
>Clean start after a failed migration</title>
<para
>In case migration from &kmail; 1 to &kmail; 2 fails or you have weird problems after it, you can try to do a clean import of your data, instead of migrating the existing settings. Be warned, this needs more manual setup, so do only if you are confident of setting up your &kmail; accounts again; it can generate a large amount of network traffic for &IMAP; resources.
</para>
<orderedlist>
<listitem
><para
>Stop Akonadi and related applications</para>
<para
>quit &kmail;/&kontact;/&korganizer;, and issue this command:
</para>
<para
><userinput
><command
>akonadictl stop</command
></userinput>
</para>
<para
>Make sure no <application
>Akonadi</application
> or <application
>MySQL</application
> process is running:
</para>
<para
><userinput
><command
>ps ux | grep mysql</command
></userinput>
</para>
<para
><userinput
><command
>ps ux | grep akonadi</command
></userinput>
</para>
<para
>They should not show anything else but the <application
>grep</application
> process itself.
</para>
</listitem>
<listitem
><para
>Remove old Akonadi database and config</para>
<para
>Delete the following folders
</para>
<itemizedlist>
  <listitem>
    <para>
      <filename role="directory"
>~/.local/share/akonadi</filename>
    </para>
  </listitem>
  <listitem>
    <para>
      <filename role="directory"
>~/.config/akonadi</filename>
    </para>
  </listitem>
</itemizedlist>
<para
>Delete also the files starting with <emphasis
>akonadi</emphasis
> from <filename role="directory"
>~/.kde4/share/config</filename>
</para>
</listitem>
<listitem
>ttps://bugs.kde.org/show_bug.cgi?id=283682
<para
>Restart Akonadi server
</para>
<para
><userinput
><command
>akonadictl start</command
></userinput>
</para>
</listitem>
<listitem>
<para
>Add back the accounts
</para>
<para
>Now it is time to add your account back. You can use &kmail; (&kontact;) for it, or you can use the <application
>akonadiconsole</application
> tool.
</para>
<para
>In &kmail;: <menuchoice
><guimenu
>Settings</guimenu
><guisubmenu
>Configure KMail</guisubmenu
><guimenuitem
>Accounts</guimenuitem
></menuchoice
> and use <guilabel
>Add</guilabel
>.
</para>
<para
>If you use &IMAP;, add a new <guimenuitem
>&IMAP; E-Mail server</guimenuitem
>. If you want disconnected mode (so you can read the mails offline), enable it on the <guilabel
>Advanced</guilabel
> tab. Be sure to check that you are subscribed to all your important folders.
</para>
<para
>You might already see a <guilabel
>Local folder</guilabel
> resource. This points to a local maildir folder. You can either modify this to point to your existing maildir folders or you can add a new resource for local mails.
</para>
<para
>When adding a maildir resource you can choose between <guilabel
>&kmail; Mail Folder</guilabel
> or <guilabel
>Maildir</guilabel
>. Unless you have a mixed folder containing <emphasis
>both</emphasis
> maildir folders and mbox files, you should choose <guilabel
>Maildir</guilabel
>. For independent mbox files, like the one in the <filename role="directory"
>/var/spool/mail</filename
>, you can set up a new <emphasis
>MBox</emphasis
>  folder.
</para>
<para
>Add the POP3 accounts as well. If you have multiple Local Folders set up, on the <guilabel
>Advanced</guilabel
> tab, choose the destination folder where the newly downloaded mails are put.
</para>
<para
>For all accounts, configure the mail check interval. For Local folders disable interval checking and also disable <guilabel
>Include in manual mail check</guilabel
> in the <guilabel
>Retrieval options</guilabel
>.
</para>
<para
>Add the sending (SMTP) accounts.
</para>
</listitem>
<listitem>
<para
>Fix your filters, identities and favorite folders
</para>
<para
>If you have client side filtering (common with POP3 mails), go to <menuchoice
><guimenu
>Settings</guimenu
><guimenuitem
>Configure Filters</guimenuitem
></menuchoice
> and fix the destination folder for the filters, they most probably are wrong. Otherwise mails will end up in folders you don't expect.
</para>
<para
>Spam filter (at least in version 4.7.3 and earlier) does not work as expected in that the rule that the wizard creates does not send spam to the folder you have defined.
</para>
<para
>The workaround for this is to change the <quote
>spam</quote
> and <quote
>spam unsure</quote
> (if the spam filter you use supports that) from looking at Status-fields in the header <literal
>X-Spam-Status</literal
> to look <guimenuitem
>Anywhere in headers</guimenuitem
> for X-<replaceable
>your spam filter</replaceable
>-Classification: <quote
>SPAM or unsure</quote
>. Look at the filters the wizard creates and copy the <quote
>contains</quote
> part. Example for <application
>Spambayes</application
>: <quote
>X-Spambayes-Classification: spam</quote
> and <quote
>X-Spambayes-Classification: unsure</quote
>.
</para>
<para
>You also need to verify the identity settings and set the sent-mail, drafts and templates folders to point to the right folders. To do that go to <menuchoice
><guimenu
>Settings</guimenu
><guisubmenu
>Configure KMail</guisubmenu
><guimenuitem
>Identities</guimenuitem
></menuchoice
>, modify the identity, go to the  <guilabel
>Advanced</guilabel
> tab and modify the above mentioned folder settings.
</para>
<para
>Check also that your <guilabel
>Favorite Folders</guilabel
> are the ones you have chosen before.
</para>
</listitem>
<listitem>
<para
>Initiate a mail check
</para>
<para
>Start a mail check for your accounts. It is suggested doing it per account.
</para>
<para
>First check for &IMAP;, if you have it.
</para>
<para
>Next check (import) your local mails. One solution is to do a full check in one go <menuchoice
><guimenu
>File</guimenu
><guimenuitem
>Check Mail In</guimenuitem
></menuchoice
> and select the local account; the other is to click one by one on the folders, that should initiate the check for that folder (alternatively right click on the folder name and select <guilabel
>Update Folder</guilabel
>).
</para>
<para
>The initial import might be slow and could use a lot of memory, especially if you have folders with a large amount of mail. In that case per-folder check is preferred. If the check (complete or for one folder) is finished and the memory usage is still high, you could restart the Akonadi server &mdash; as seen above &mdash; or just the maildir agent, if you use <varname
>akonadiconsole</varname
>. Do not worry, this high memory usage is <emphasis
>only</emphasis
> for initial import.
</para>
<para
>Initiate a check mail for POP3 resources.
</para>
</listitem>
</orderedlist>
<para
>Hopefully after these steps, you will have a much nicer &kmail; experience.
</para>
</sect1
> --> <!-- This section removed 8/8/2021. -->

<!-- <sect1 id="local-folders-is-added-over-and-over"
><title
>Local Folders is added over and over</title>
<para
>In some cases you might end up with a maildir account pointing to a certain place (like <filename
>$HOME/Mail</filename
>), but you still see a <guilabel
>Local Folders</guilabel
> folder in the folder list with Inbox/Outbox/Trash/Drafts/&etc; subfolders and &kmail; keeps putting mails there, especially sent mails.
</para>
<para
>The problem is that certain folders are marked as special folders (system folders) and if you don't have them, &kmail; cannot operate correctly. That is the reason why it keeps re-creating that folder.
</para>
<para
>At this time there is no easy way to change this in the UI for all types of special folders. Here is what you can do:
</para>
<orderedlist>
<listitem
><para
>The <emphasis
>Sent-Mail, Drafts and Templates</emphasis
> folder is configurable for each identity. Go to  <menuchoice
><guimenu
>Settings</guimenu
><guisubmenu
>Configure KMail</guisubmenu
><guimenuitem
>Identities</guimenuitem
></menuchoice
>, select your identity, click on <guilabel
>Modify</guilabel
>, go to the <guilabel
>Advanced</guilabel
> tab and set the folders to point to the right place.</para
></listitem>
<listitem
><para
>The default <emphasis
>Inbox</emphasis
> is configurable for each POP3 account. Go to  <menuchoice
><guimenu
>Settings</guimenu
><guisubmenu
>Configure KMail</guisubmenu
><guimenuitem
>Account</guimenuitem
></menuchoice
>, select your POP3 account, click on <guilabel
>Modify</guilabel
> go to the <guilabel
>Advanced</guilabel
> tab and set the <guilabel
>Destination folder</guilabel
>.</para
></listitem>
<listitem
><para
>For IMAP accounts you can configure the <emphasis
>Trash</emphasis
> folder. Do as above. The setting name is <emphasis
>Trash folder</emphasis
>.</para
></listitem>
<listitem
><para
>The most problematic part is the <emphasis
>Outbox</emphasis
>. First, locate <filename
>specialmailcollectionsrc</filename
> in your &kde; configuration directory (<filename
>$HOME/.kde4/share/config</filename
> or similar). It contains something like this:</para
></listitem>
</orderedlist>
<para
><userinput>
[SpecialCollections]
DefaultResourceId=akonadi_maildir_resource_0</userinput>
</para>
<para
>Now start <application
>akonadiconsole</application
>, on the <guilabel
>Agents</guilabel
> tab locate your local account for your <emphasis
>Outbox</emphasis
> folder, click on it and note the identifier that appears in the lower part (<replaceable
>akonadi_maildir_resource_XXX</replaceable
> or similar). Put this identifier in the above shown <filename
>specialmailcollectionsrc</filename
>, by replacing the existing one.
</para>
<para
>After that restart <application
>akonadi</application
> (you can do from the <application
>akonadiconsole</application
>, <menuchoice
><guimenu
>Server</guimenu
><guimenuitem
>Restart Server</guimenuitem
></menuchoice
> or from command line with:
</para>
<para
><userinput
>akonadictl restart</userinput>
</para>
<para
>Now remove the <guilabel
>Local Folders</guilabel
> that you don't want to use anymore.
</para>
<para
>If it keeps reappearing and the <guilabel
>Mail Dispatcher Agent</guilabel
> still crashes, you need to do one more thing in <application
>akonadiconsole</application
>. Go to the <guilabel
>Browser</guilabel
> tab, find the outbox you <emphasis
>want</emphasis
> to use, right click on it, select <guilabel
>Folder Properties</guilabel
>, <guilabel
>Attributes</guilabel
> tab, enter <userinput
>SpecialCollectionAttribute</userinput
> then click <guilabel
>Add</guilabel
>, double click on the <guilabel
>Value</guilabel
> near the <guilabel
>SpecialCollectionAttribute</guilabel
> and enter <userinput
>outbox</userinput
>. Add also another attribute, the attribute name has to be <guilabel
>ENTITYDISPLAY</guilabel
> and the value <userinput
>("outbox" "mail-folder-outbox" "" ())</userinput
> (just copy paste from here). Restart <application
>akonadi</application
> and now you should be able to remove completely the unneeded local folder account.
</para>
</sect1
> --> <!-- This section removed 8/8/2021. -->

<sect1 id="unable-to-fetch-item-from-backend">
<title
>Програма повідомляє, що «Не вдалося отримати елемент з модуля» під час входу до теки &IMAP;</title>

  <para
>У такої помилки може бути принаймні дві причини. Нижче наведено деякі обхідні шляхи.</para>

  <variablelist>
    <varlistentry>
      <term
>Обхідний шлях 1</term>
      <listitem>
        <itemizedlist>
          <listitem
><para
>відкрийте для редагування файл <filename
>~/.local/share/akonadi/mysql.conf</filename
></para
></listitem>
          <listitem
><para
>У розділі <guilabel
>[mysql]</guilabel
> допишіть <userinput
>binlog_format=row</userinput
></para
></listitem>
        </itemizedlist>
        <para
>Якщо це не спрацює, скористайтеся обхідним шляхом 2 (наведено нижче).</para>
      </listitem>
    </varlistentry>

    <varlistentry>
      <term
>Обхідний шлях 2</term>
      <listitem>
        <para
>Цей спосіб полягає у простому перезапуску програми, щоб &kmail; зміг отримати всі потрібні дані. Ось можливі кроки:</para>
        <para
>Скористайтеся комбінацією клавіш <keycombo
>&Alt;<keycap
>F2</keycap
></keycombo
> (&krunner;) або &konsole; для введення команди <userinput
><command
>kquitapp kmail</command
></userinput
>, трохи зачекайте, введіть команду <userinput
><command
>akonadictl stop</command
></userinput
>, ще трохи зачекайте, введіть команду <userinput
><command
>akonadictl start</command
></userinput
>, зачекайте, і, нарешті введіть команду <userinput
><command
>kmail</command
></userinput
>. Таким чином, ви завершите роботу &kmail; (з закриттям усіх вікон), завершите роботу модуля обробки даних &kmail;, перезапустите модуль обробки даних &kmail;, перезапустите &kmail;. Працездатне інтернет-з’єднання значно підвищить ваші шанси на успіх. Іноді ви можете просто віддати команду <userinput
><command
>kquitapp kmail</command
></userinput
>, зачекати трохи і запустити &kmail; знову. Може виникнути потреба у декількох таких перезапусках. Точна причина не зовсім зрозуміла, але у разі проблем зі з’єднанням зростає ймовірність такого розвитку подій. </para>
      </listitem>
    </varlistentry>
  </variablelist>
  <para
>Див. також <link linkend="your-mails-are-not-being-sent"
>наступний розділ</link
>, щоб дізнатися про те, як може допомогти <application
>akonadiconsole</application
>.</para>
</sect1>

<sect1 id="your-mails-are-not-being-sent">
<title
>Повідомлення не надсилаються без будь-яких повідомлень про помилки</title>

  <para
>Якщо &kmail; не надсилає пошти без будь-яких повідомлень, причиною може бути зависання «агента», відповідального за роботу з повідомленнями. Звичайно ж, також слід переконатися, що з’єднання, яким надсилаються дані, може працювати у штатному режимі!</para>

  <para
>Щоб впоратися з цією проблемою, варто перервати виконання поточної дії і перезапустити її. Спочатку завершіть роботу &kmail; за допомогою &krunner; (<keycombo
>&Alt;<keycap
>F2</keycap
></keycombo
>) або &konsole; та введеної команди <userinput
><command
>kquitapp kmail</command
></userinput
>. Зауважте, що звичайна комбінація клавіш <keycombo
>&Alt;<keycap
>F4</keycap
></keycombo
> або використання пункту меню <menuchoice
><guimenu
>Файл</guimenu
><guimenuitem
>Вийти</guimenuitem
></menuchoice
> не дасть бажаних результатів! Трохи зачекайте і запустіть &kmail; знову. Тепер запустіть <application
>akonadiconsole</application
> за допомогою &krunner; (<keycombo
>&Alt;<keycap
>F2</keycap
></keycombo
>) або &konsole;. Натисніть пункт <guilabel
>Mail Dispatcher Agent</guilabel
> (на вкладці <guilabel
>Agents</guilabel
>), клацніть на ньому правою кнопкою миші і перервіть виконання поточної дії. У відповідь, ймовірно, буде показано декілька повідомлень про помилки. Поверніться до вікна &kmail; і скористайтеся пунктом меню <menuchoice
><guimenu
>Файл</guimenu
><guimenuitem
>Надіслати повідомлення з черги</guimenuitem
></menuchoice
>. Можливо, тепер все запрацює. Якщо цього не сталося, замість переривання поточної дії спробуйте перемкнути стан (автономний/у мережі) для <guilabel
>Mail Dispatcher Agent</guilabel
> (те саме контекстне меню) або перезапустіть все у спосіб, описаний у обхідному шляху 2 <link linkend="unable-to-fetch-item-from-backend"
>попереднього розділу</link
>.</para>

  <para
><note
><para
>akonadiconsole може бути доволі зручним інструментом у багатьох випадках, оскільки програма показує всі агенти, окремі компоненти модуля обробки даних &kmail;. Ви зможете зупиняти і розпочинати їхню роботу, переводити агенти у автономний режим, переривати виконання дій тощо. Це дуже корисний інструмент у аналізі незрозумілих ситуацій у &kmail;.</para
></note
></para>

  <para
>Іноді <guilabel
>Mail Dispatcher Agent</guilabel
> не працює належним чином, оскільки фонова служба D-Bus (загальносистемний засіб обміну даними між процесами) не працює як слід. Найпростішим виходом у цій ситуації є просте перезавантаження системи. Фонова служба D-Bus є одним із перших процесів, який запускається, коли ви входите до стільничного середовища &kde;, тому його не так просто зупинити і перезапустити. Від нього залежить працездатність усього середовища Плазми.</para>

</sect1>

<sect1 id="resource-conflict-error">
<title
>Програма повідомляє, що «Не вдалося отримати елемент з модуля ... [LRCONFLICT]»</title>

  <para
>Цю проблему безпосередньо пов'язано із <ulink url="https://bugs.kde.org/show_bug.cgi?id=283682"
>вадою 283682 в &akonadi;</ulink
>, яка спричиняє проблеми у &kmail; з жовтня 2011 року. Існує проблема синхронізації та координації в асинхронній обробці фільтрів повідомлень. Іноді правило фільтрування, за яким пересувають повідомлення до інших тек, «підвисає» і створює декілька записів у базі даних для повідомлення, яке підлягає пересуванню. Коли ви намагаєтеся відкрити другу копію такого повідомлення, з'являється повідомлення про те, що «Неможливо отримати запис з модуля обробки ...[LRCONFLICT]». Такі фантомні повідомлення не можна вилучити або пересунути до смітника за допомогою вбудованих засобів &kmail;. Але ви <emphasis
>можете</emphasis
> їх позбутися. Нижче наведено спосіб зробити це.</para>

<procedure>
  <step
><para
>Спочатку завершіть роботу &kmail;. Можливо, потреби у цьому немає, але краще запобігти небажаним наслідкам.</para
></step>

  <step
><para
>За допомогою <code
>akonadictl</code
> ви також можете визначити, скільки повідомлень пошкоджено. <screen
>~ $ akonadictl fsck 2
>&amp;1 | grep ^Found
Found 6 external files.
Found 6 external parts.
Found no unreferenced external files.
Found 0 parts to be moved to external files
Found 0 parts to be moved to database
Found 6 collections without RID.
Found 9 items without RID.
Found 0 dirty items.</screen
> У цьому випадку маємо дев'ять дубльованих повідомлень (без RID).</para>
<para
>&nbsp;</para
><!-- add whitespace --></step>

  <step
><para
>Вам слід визначити спосіб безпосереднього з'єднання із сервером mysql. Для цього варто скористатися командами <code
>ps</code
> і <code
>grep</code
>. <screen
>~ $ ps ux | grep mysql
david     8788  0.2  0.9 3736292 153936 ?      Sl   06:45   0:16 /usr/sbin/mysqld
--defaults-file=/home/david/.local/share/akonadi/mysql.conf
--datadir=/home/david/.local/share/akonadi/db_data/
--socket=/run/user/1000/akonadi/mysql.socket
--pid-file=/run/user/1000/akonadi/mysql.pid
david    24275  0.0  0.0   8056  2144 pts/1    S+   08:24   0:00 grep --colour=auto mysql</screen
></para>
<para
>&nbsp;</para
><!-- add whitespace --></step>

  <step
><para
>Викличте програму-сервер mysql за допомогою даних щодо сокета, здобутих на кроці 3, і віддайте три команди mysql, які проілюстровано нижче. <screen
>~ $ mysql --socket=/run/user/1000/akonadi/mysql.socket                 &lt;==
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 114
Server version: 10.5.10-MariaDB Source distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use akonadi;                                         &lt;==
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [akonadi]> delete from pimitemtable where remoteid is NULL;    &lt;==
Query OK, 9 rows affected (0.003 sec)

MariaDB [akonadi]> \q                                                  &lt;==
Bye</screen
> Цими трьома командами mysql є «use akonadi;», «delete from pimitemtable where remoteid is NULL;» і «\q». Після команди «mysql --socket= ...» ви почнете діалог із сервером mysql (або «MariaDB»), який покаже запит щодо команди — &gt;. Тут для точності наведено увесь діалог. Рядки, введені користувачем, на наведеній вище ілюстрації позначено &lt;==.</para
></step>

</procedure>

  <para
>Після перезапуску &kmail; надокучливі повідомлення-дублікати мають зникнути. Вони були лише фантомами, причиною появи яких були NULL-вказівники у таблицях бази даних mysql.</para>

</sect1>

<sect1 id="cleaning-aux-storage">
<title
>Підтримання чистоти областей допоміжного сховища даних &kmail;</title>

  <para
>&kmail; зберігає дані на вашому комп'ютері у декількох різних місцях. Більшість з цих місць розташовано десь у каталозі <filename
>~/.local/share/</filename
>. Наприклад, у більшості дистрибутивів Linux, вміст ваших <guilabel
>Локальних тек</guilabel
> зберігається у <filename
>~/.local/share/local-mail/</filename
> . &akonadi; зберігає більшість своїх даних у <filename
>~/.local/share/akonadi/</filename
> . <screen
>~ $ cd .local/share/akonadi
~/.local/share/akonadi $ ls
Akonadi.error      db_data  file_db_data     mysql.conf  socket-localhost-default
Akonadi.error.old  db_misc  file_lost+found  search_db
</screen
></para>

  <para
><filename
>Akonadi.error</filename
> і <filename
>Akonadi.error.old</filename
> є файлами журналу, які створюються кожного разу, коли ви зупиняєте роботу &akonadi; і перезапускаєте її. Текстовий файл <filename
>mysql.conf</filename
> є файлом налаштувань для фонової служби mysqld, яка слугує модулем обробки даних &akonadi;. Два каталоги, <filename
>db_data</filename
> і <filename
>search_db</filename
>, містять дані самих таблиць бази даних mysql. Крім того, існує два файли журналу mysql у <filename
>db_data</filename
>, які можуть бути корисними, якщо і коли виникають проблеми із &akonadi;.</para>

  <para
>У двох каталогах, <filename
>file_db_data</filename
> і <filename
>file_lost+found</filename
>, містяться допоміжні дані, які пов'язано із асинхронною обробкою. &akonadi; не виконує автоматичного чищення каталогу <filename
>file_lost+found</filename
>, тому, ймовірно, вам варто час від часу вилучати з нього файли вручну (наприклад, за допомогою &dolphin;). &akonadi; виконує спробу очистити каталог <filename
>file_db_data</filename
> після об'єднання усіх його даних із файлами основної бази даних, але іноді у каталозі лишається сміття. Скористайтеся командою <screen
>find .local/share/akonadi/file_db_data/ -type f | xargs rm</screen
> для усування сміття. (Якщо каталог <filename
>file_db_data</filename
> вже почищено, команда «find» поверне повідомлення про помилку.)</para>

</sect1>

<sect1 id="dealing-with-dirt">
<title
>Виправлення записів &kmail; «в обробці»</title>

  <para
>Цю проблему безпосередньо пов'язано із <ulink url="https://bugs.kde.org/show_bug.cgi?id=436550"
>вадою 436550 в &akonadi;</ulink
>, про яку було повідомлень у квітні 2021 року. Вада є результатом виявлення записів «в обробці» за допомогою <code
>akonadictl fsck</code
>. <screen
>~ $ akonadictl fsck 2
>&amp;1 | grep ^Found
Found 5 external files.
Found 5 external parts.
Found no unreferenced external files.
Found 0 parts to be moved to external files
Found 0 parts to be moved to database
Found 6 collections without RID.
Found 0 items without RID.
Found 750 dirty items.</screen
> <!-- Can't indent here ... messes up the output.  -->
  </para>

  <para
>Прапорець «в обробці» для запису у pimitemtable (одна з таблиць у базі даних &akonadi;) використовується для керування певними аспектами асинхронної обробки. Для нього встановлюється значення true, якщо у черзі дій є дії із відповідним повідомленням електронної пошти. Переважно, прапорець «в обробці» знімається за одну або дві секунди, коли виконання дії з черги завершується.</para>

  <para
>Нарешті, з не зовсім очевидних причин прапорець «в обробці» може бути встановлено для десятків і навіть сотень повідомлень одразу, як це проілюстровано вище. Коли таке трапляється, автоматичних механізм чищення прапорців «зависає» і не може відновити стан повідомлень автоматично. Основною причиною для появи повідомлення «в обробці» у цьому випадку є те, що програма неправильно встановлює значення для поля «remoteid», що робить отримання повідомлення «в обробці» у &kmail; неможливим. Саме повідомлення лишається зберігатися на диску, але &kmail; не може його знайти.</para>

  <para
>Можливо, у цієї проблеми є кращий спосіб вирішення. Якщо вам вдалося вирішити її оптимальніше, будь ласка, повідомте про це авторам документації, щоб удосконалити її. Наведена нижче процедура, принаймні, призведе до виправлення помилок у базі даних. Втім, вона потребує доволі багато ручної роботи.</para>

  <procedure>
    <step
><para
>Вийдіть із &kmail; і зупиніть роботу сервера &akonadi; за допомогою команди у терміналі: <code
>akonadictl stop</code
> .</para
></step>

    <step
><para
>Створіть резервну копію усіх ваших повідомлень електронної пошти. З цією метою ви можете скористатися <ulink url="help:/pimdataexporter"
>Засобом експортування даних PIM</ulink
>. Крім того, ви можете скористатися &ark; для створення архіву або &dolphin; для створення копії <filename
>~/.local/share/local-mail/</filename
> десь в іншому місці на жорсткому диску. Якщо вам не чужий дух пригод, можете просто перейменувати ваші локальні теки на щось подібне до <filename
>local-mail-save</filename
>, але безпечніше мати резервну копію ваших повідомлень, перш ніж ви перейдете до будь-яких дій із виправлення ситуації.</para
></step>

    <step
><para
>Вам також слід створити резервну копію будь-яких створених фільтрів і переконатися, що ви знаєте, які відновити усі нетипові <guilabel
>теки надісланої пошти</guilabel
>, <guilabel
>теку чернеток</guilabel
> та <guilabel
>теку шаблонів</guilabel
>, пов'язані із профілями &kmail;. На наступному кроці усі ваші нетипові теки пошти буде вилучено, і вам доведеться виправляти деякі речі після того, як &akonadi; перебудує свої таблиці бази даних.</para
></step>

    <step
><para
>Далі, вилучіть усі каталоги у каталозі <filename
>local-mail</filename
> або перейменуйте цей каталог на щось подібне до <filename
>local-mail-save</filename
>. Запустіть &kmail;. У результаті &akonadi; витре усі записи таблиць бази даних із повідомленнями електронної пошти. Ви ненадовго побачите стані назви тек, але вони зникнуть, щойно &akonadi; завершить вилучення усіх записів «в обробці» (і усіх інших записів).</para
></step>

    <step
><para
>Завершіть роботу &kmail; і зупиніть сервер &akonadi;, як це описано на кроці 1, потім відновіть резервну копію ваших повідомлень (її було створено на кроці 2) у каталозі <filename
>~/.local/share/local-mail/</filename
>.</para
></step>

    <step
><para
>Запустіть &kmail; знову і примусьте &akonadi; повторно синхронізувати базу даних. Найпростішим способом зробити це, є пункт меню <menuchoice
> <shortcut
><keycombo action="simul"
>&Ctrl;<keycap
>L</keycap
></keycombo
></shortcut
><guimenu
>Файл</guimenu
><guimenuitem
>Перевірити пошту</guimenuitem
></menuchoice
>. &akonadi; автоматично повторно синхронізує усі теки під час отримання пошти. Процедура триватиме декілька хвилин, залежно від кількості повідомлень, які зберігаються у ваших теках &kmail;. Після її завершення усі записи «в обробці» зникнуть.</para
></step>

    <step
><para
>Нарешті, вам потрібно буде відновити ваші правила фільтрування пошти, резервну копію яких ви створили на кроці 3, і перевірити, чи усі нетипові записи тек (<guilabel
>Тека надісланої пошти</guilabel
> тощо) для ваших профілів встановлено так, як ви цього хотіли. Вам також доведеться скинути усі нетипові властивості тек, які було встановлено. Крім того, ви можете отримати декілька сповіщень про «Непрочитане повідомлення», які теж слід прибрати. Втім, таблиці вашої бази даних &akonadi; будуть знову чистими і правильними!</para
></step>

  </procedure>


</sect1>


</chapter>
