<chapter id="troubleshooting">

<chapterinfo>
<authorgroup>
<author>
  <personname>
  <firstname
>Некоторые части этой главы были созданы на основе страницы <ulink url="https://userbase.kde.org/Special:MyLanguage/KMail/FAQs_Hints_and_Tips"
>«KMail/FAQ, подсказки и советы»</ulink
> с сайта KDE UserBase в 2012 году.</firstname>
  </personname>
</author>
<author
>&David.Bryant; &David.Bryant.mail; </author>
<othercredit role="translator"
><firstname
>Мария</firstname
><surname
>Шикунова</surname
><affiliation
><address
><email
>translation-team@basealt.ru</email
></address
></affiliation
><contrib
>Перевод на русский язык</contrib
></othercredit
> 
</authorgroup>
<date
>08 августа 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 года. За эти годы появилось множество ошибок, и большинство из них уже решено. Информация о старых ошибках содержится на странице пользовательской базы данных &kde; <ulink url="https://userbase.kde.org/Special:MyLanguage/KMail/FAQs_Hints_and_Tips"
>«KMail/FAQ, подсказки и советы»</ulink
>. Также посетите <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 0 external files.
Found 0 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 0 dirty items.</screen
>RID — это аббревиатура от RemoteId, названия именуемого поля в таблицах базы mysql. Если есть хотя бы одна запись без RID, есть небольшая проблема, которую <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
>Эта вкладка позволяет увидеть, какие ресурсы требуются при вызове определённой функции &PIM;. Список ресурсов &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
>Если это не помогает, попробуйте второй обходной путь:</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; (закрывает <emphasis
>все</emphasis
> окна), останавливает модуль обработки данных &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; не отправляет письма без сообщений об ошибках, возможно, «завис» ответственный за отправку писем <quote
>агент</quote
>. Сначала необходимо убедиться, что имеется надлежащее сетевое подключение для отправки писем.</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
> <emphasis
>не</emphasis
> поможет. Подождите минуту и снова запустите &kmail;. Затем запустите <application
>akonadiconsole</application
> с помощью &krunner; (<keycombo
>&Alt;<keycap
>F2</keycap
></keycombo
>) или &konsole;. Откройте <guilabel
>Агент диспетчера почты</guilabel
>, щёлкните правой кнопкой мыши и в открывшемся контекстном меню отмените текущее действие. Возможно, появится несколько всплывающих окон с сообщениями об ошибке. Вернитесь в &kmail; и воспользуйтесь пунктом меню <menuchoice
><guimenu
>Файл</guimenu
><guimenuitem
>Отправить из очереди</guimenuitem
></menuchoice
>. Теперь всё должно работать. Если это не помогло, вместо отмены текущего действия попробуйте переключить статус подключения <guilabel
>Агента диспетчера почты</guilabel
> или перезагрузить элементы, о которых описано в обходном пути 2 в <link linkend="unable-to-fetch-item-from-backend"
>проблеме, рассмотренной ранее</link
>.</para>
    
  <para
><note
><para
>Akonadiconsole может быть весьма полезен в ряде ситуаций, поскольку он показывает все <quote
>агенты</quote
>, отдельные компоненты серверной части &kmail;. Возможно останавливать и запускать их, переводить в автономный режим, прерывать текущие действия и так далее. Это может быть очень полезно, когда появляются проблемы при работе с &kmail;.</para
></note
></para>
    
  <para
>Иногда <guilabel
>Агент диспетчера почты</guilabel
> перестаёт функционировать, потому что демон dbus (средство системного уровня для межпроцессных коммуникаций) неправильно работает. Наилучшим выходом из этой ситуации будет перезапуск системы. Демон dbus запускается одним из первых при запуске рабочей среды &kde;, поэтому его нельзя просто закрыть и перезапустить, от него зависит вся среда &plasma;.</para>
    
</sect1>

<sect1 id="resource-conflict-error">
<title
>«Невозможно извлечь элемент из модуля ... [LRCONFLICT]»</title>

  <para
>Эта проблема напрямую связана с <ulink url="https://bugs.kde.org/show_bug.cgi?id=283682"
>ошибкой &akonadi; #283682</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
> — это конфигурационный файл, который работает в качестве модуля &akonadi;. Два каталога, <filename
>db_data</filename
> и <filename
>search_db</filename
>, содержат данные самих таблиц базы данных mysql. В каталоге <filename
>db_data</filename
> также содержится несколько файлов журнала mysql, которые могут быть полезны при возникновении проблем с &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"
>ошибкой &akonadi; #436550</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>
