Цю главу створено на основі сторінки KMail/FAQs Hints and Tips UserBase KDE.
Юрій
Чорноіван

    yurchor@ukr.net

Переклад українською
28 липня 2012 року
&kde; SC 4.9

# Усування вад у &kmail;

## KMail не надсилає пошту

Деякі з користувачів повідомляють про те, що вихідні повідомлення не надсилаються через нібито не вказані параметри &SMTP;, хоча значення на сторінці Параметри вказано належним чином. Повідомляється, що проблему можна усунути відкриттям akonadiconsole з додаванням агента розподілу пошти.

Якщо комп’ютер було раптово вимкнено під час роботи у режимі сну (наприклад через вимикання живлення), іноді поштові повідомлення просто залишаються у теці «Вихідні» і не надсилаються, але програма також і не повідомляє про жодні помилки. Причиною може бути те, що агент розподілу пошти перемкнувся у режим автономної роботи під час присипляння і не повернувся до звичайного режиму через аварійне вимикання живлення. Відкрийте для редагування такий файл:

`~/.config/akonadi/agent_config_akonadi_maildispatcher_agent`

і змініть

    [Agent]
    Online=false

на

    [Agent]
    Online=true

## Запуск після невдалого перенесення даних

Якщо вам не вдасться перенести ваші налаштування з &kmail; 1 до &kmail; 2 або після такого перенесення виникають дивні проблеми, ви можете спробувати повторно імпортувати ваші дані замість перенесення поточних налаштувань. Зауважте, що для цього доведеться виконати певні дії вручну, отже ви можете скористатися цим способом, якщо точно знаєте параметри ваших облікових записів &kmail; і не маєте обмежень на об’єм обміну даними з ресурсами &imap;.

1. Завершіть роботу Akonadi і всіх пов’язаних з ним програм

   вийдіть з &kmail;/&kontact;/&korganizer; і віддайте таку команду:

   ``akonadictl stop``

   Переконайтеся, що не запущено жодних процесів Akonadi або MySQL:

   ``ps ux | grep mysql``

   ``ps ux | grep akonadi``

   У виведених даних не має бути нічого, окрім назви самого процесу grep.

2. Вилучіть стару базу даних і файл налаштувань Akonadi

   Вилучіть такі теки:

   - `~/.local/share/akonadi`

   - `~/.config/akonadi`

   Вилучіть також файли, назви яких починаються з akonadi з `~/.kde4/share/config`

3. Перезапустіть сервер Akonadi

   ``akonadictl start``

4. Повторно створіть облікові записи

   Тепер додайте знову ваш обліковий запис. Ви можете скористатися для цього &kmail; (&kontact;) або програмою akonadiconsole.

   У &kmail;: Параметри Налаштувати KMail Облікові записи, натисніть кнопку Додати.

   Якщо ви користуєтеся &imap;, додайте новий сервер електронної пошти &imap;. Якщо ви бажаєте налаштувати від’єднаний режим (щоб можна було читати повідомлення у автономному режимі), позначте відповідний пункт на вкладці Додатково. Переконайтеся, що ви підписалися на всі важливі для вас теки.

   Ймовірно, ви вже помітили пункт ресурсу Локальна тека. Цей пункт вказує на локальну теку поштових повідомлень. Ви можете змінити його так, щоб він вказував на вже створені вами теки поштових повідомлень, або додати новий ресурс для локального зберігання повідомлень.

   Під час додавання нового ресурсу поштової теки ви можете вибрати один з варіантів: Поштова тека &kmail; або Maildir. Якщо у вашій теці не містяться одразу теки maildir та файли mbox, вам слід вибрати варіант Maildir. Якщо ваше сховище пошти є набором окремих файлів mbox, наприклад у `/var/spool/mail`, ви можете налаштувати нову теку MBox.

   Додайте також облікові записи POP3. Якщо у вас налаштовано декілька локальних тек, виберіть на вкладці Додатково теку призначення, в якій слід зберігати нові отримані з сервера повідомлення.

   Для всіх облікових записів налаштуйте інтервал перевірки пошти. Для локальних тек вимкніть періодичні перевірки, а також зніміть позначку з пункту Включити до перевірки пошти вручну у Параметрах отримання.

   Додайте дані серверів надсилання пошти (SMTP).

5. Виправте ваші фільтри, ідентифікатори і теки улюблених записів

   Якщо у вашій системі налаштовано фільтрування на боці клієнта (типово для поштових скриньок POP3), виберіть пункт меню Параметри Налаштувати фільтри і виправте дані теки призначення для фільтрів, оскільки, ймовірно, ці дані є помилковими. Якщо ви цього не зробите, пошта зберігатиметься зовсім не до тих тек, до яких би вам хотілося.

   Фільтрування небажаної кореспонденції (принаймні у версії 4.7.3 і попередніх) не працює належним чином: правило, яке створюється майстром не надсилає небажану кореспонденцію до вказаної вами теки.

   Уникнути цієї проблеми можна зміною фільтрувань «spam» (небажана кореспонденція) та «spam unsure» (можливо небажана кореспонденція), якщо таке передбачено використаним вами засобом фільтрування, з пошуку у Status-fields у заголовку X-Spam-Status на Будь-де у заголовках для X-ваш_фільтр-Classification: SPAM або unsure. Погляньте на створені майстром фільтри і скопіюйте частину "contains". Приклад для Spambayes: X-Spambayes-Classification: spam and X-Spambayes-Classification: unsure

   Крім того, вам слід перевірити параметри профілю і зробити так, щоб вони визначали належні теки надісланої пошти, чернеток і шаблонів. Для цього скористайтеся пунктом меню Параметри Налаштувати KMail Профілі, внесіть зміни до профілю, перейдіть на вкладку Додатково і скоригуйте адреси згаданих вище тек.

   Також переконайтеся, що ваші теки улюблених записів є тими самими, які ви вибирали раніше.

6. Запустіть отримання пошти

   Запустіть отримання пошти з ваших облікових записів. Варто зробити це для кожного облікового запису окремо.

   Спочатку зробіть це для поштових скриньок &imap;, якщо у вас є такі.

   Далі, слід отримати (імпортувати) ваші локальні поштові повідомлення. Одним зі способів такого отримання є повна перевірка за допомогою пункту меню Файл Перевірити пошту з вибором локального облікового запису. Іншим способом є натискання пункту однієї з тек, у відповідь на яке буде розпочато перевірку пошти у цій теці (ви також можете клацнути правою кнопкою миші на пункті теки і вибрати у контекстному меню пункт Оновити теку).

   Початковий сеанс імпортування може бути доволі тривалим і вибагливим до оперативної пам’яті, особливо якщо у вашій поштовій скриньці дуже багато повідомлень. У такому разі слід надати перевагу отриманню пошти до кожної з тек окремо. Якщо після завершення отримання даних (повністю або для окремої теки) пам’ять не буде звільнено, ви можете перезапустити сервер Akonadi у спосіб наведений вище або просто перезапустити допоміжну програму роботи з поштовим каталогом, якщо ви користуєтеся `akonadiconsole`. Не переймайтеся: високе споживання пам’яті характерне лише для початкового імпортування даних.

   Запустіть отримання пошти для ресурсів POP3.

Сподіваємося, після виконання всіх цих настанов вам стане зручніше працювати у новому &kmail;.

## Не вдається вилучити локальну теку

Іноді через певні помилки може статися так, що у вас буде певний обліковий запис пошти, дані якого зберігатимуться у певній теці (наприклад `$HOME/Mail`), але у вікні програми у списку тек все ще буде тека Локальні теки з підтеками Вихідні/Смітник/Чернетки/тощо, і &kmail; продовжуватиме зберігати у цих теках повідомлення, особливо надіслані повідомлення.

Проблема полягає у тому, що певні теки позначаються як спеціальні (системні). Якщо у вашій системі немає таких тек, &kmail; не зможе працювати належним чином. Ось чому програма намагається раз за разом створити відповідну теку.

У поточній версії програми не передбачено простого способу розв’язання цієї проблеми за допомогою графічного інтерфейсу для всіх типів спеціальних тек. Але проблему все ж можна розв’язати так:

1. Теку Надіслана пошта, чернетки і шаблони можна налаштувати для кожного з профілів окремо. Скористайтеся пунктом меню Параметри Налаштувати KMail Профілі, виберіть ваш профіль, натисніть кнопку Змінити і визначте для відповідних тек правильне розташування у системі.

2. Теку Вхідні можна налаштувати окремо для кожного з облікових записів POP3. Для цього скористайтеся пунктом меню Параметри Налаштувати KMail Профілі, натисніть кнопку Змінити, перейдіть на вкладку Додатково і встановіть відповідну Теку призначення.

3. Для облікових записів IMAP ви можете налаштувати теку Смітник. Пункт меню той самий, що і у попередніх випадках. Відповідний параметр має назву Тека смітника.

4. Найбільш проблемною є тека Вихідні. Для початку, знайдіть файл `specialmailcollectionsrc` у каталозі налаштувань &kde; (`$HOME/.kde4/share/config` або подібному). У цьому файлі мають бути такі рядки:

`[SpecialCollections]DefaultResourceId=akonadi_maildir_resource_0`

Тепер запустіть akonadiconsole, на вкладці Агенти знайдіть ваш локальний обліковий запис, у якому має зберігатися тека Вихідні, натисніть цей пункт і запам’ятайте ідентифікатор, який буде показано у нижній частині вікна з даними (akonadi_maildir_resource_XXX або щось таке). Введіть цей ідентифікатор у відповідне місце файла `specialmailcollectionsrc`, замінивши поточне значення.

Після цього перезапустіть akonadi. Зробити це можна за допомогою вікна програми akonadiconsole: Сервер Перезапустити сервер або за допомогою командного рядка

`akonadictl restart`

Тепер вилучіть пункти Локальні теки, які вам непотрібні.

Якщо після цього пункт нікуди не зникне, а Агент розподілу пошти продовжуватиме завершувати роботу у аварійному режимі, вам слід зробити ще одну річ за допомогою akonadiconsole. Перейдіть на вкладку Browser (Навігація), знайдіть теку вихідних повідомлень, яку ви хочете використовувати, клацніть на її пункті правою кнопкою миші, виберіть пункт Folder Properties, перейдіть на вкладку Attributes, введіть `SpecialCollectionAttribute`, потім натисніть кнопку Add, двічі клацніть на пункті Value поряд з написом SpecialCollectionAttribute і введіть `outbox`. Додайте також інший атрибут з назвою ENTITYDISPLAY і значенням `("outbox" "mail-folder-outbox" "" ())` (просто скопіюйте цей рядок). Перезапустіть akonadi і вилучіть непотрібний обліковий запис локальної теки.

## Програма повідомляє, що «Не вдалося отримати елемент з модуля» під час входу до теки IMAP

Причин може бути декілька. Команда розробників &kmail; сподівається з часом усунути всі ці причини. Зараз же, можна скористатися одним з таких обхідних шляхів:

Обхідний шлях 1

  - відкрийте для редагування файл `~/.local/share/akonadi/mysql.conf`

  - У розділі [mysql] допишіть `binlog_format=row`

  Якщо це не спрацює, скористайтеся обхідним шляхом 2 (наведено нижче).

Обхідний шлях 2

  Цей спосіб полягає у простому перезапуску програми, щоб &kmail; зміг отримати всі потрібні дані. Ось можливі кроки:

  Скористайтеся комбінацією клавіш &Alt;F2 або &konsole; для введення команди ``kquitapp kmail``, трохи зачекайте, введіть команду ``akonadictl stop``, ще трохи зачекайте, введіть команду ``akonadictl start``, зачекайте, і, нарешті введіть команду ``kmail``. Таким чином, ви завершите роботу &kmail; (з закриттям усіх вікон), завершите роботу модуля обробки даних &kmail;, запустите модуль обробки даних &kmail;, запустите &kmail;. Працездатне інтернет-з’єднання значно підвищить ваші шанси на успіх. Іноді ви можете просто віддати команду ``kquitapp kmail``, зачекати трохи і запустити &kmail; знову. Може виникнути потреба у декількох таких перезапусках. Точна причина не зовсім зрозуміла, але у разі проблем зі з’єднанням зростає ймовірність такого розвитку подій.

Додаткові дані щодо корисності akonadiconsole для усування вад наведено нижче.

## Повідомлення не надсилаються без будь-яких повідомлень про помилки

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

Щоб впоратися з цією проблемою, варто перервати виконання поточної дії і перезапустити її. Спочатку завершіть роботу &kmail; за допомогою &krunner; (&Alt;F2) або &konsole; та введеної команди ``kquitapp kmail``. Зауважте, що звичайна комбінація клавіш &Alt;F4 або використання пункту меню Файл Вийти не дасть бажаних результатів! Трохи зачекайте і запустіть &kmail; знову. Тепер запустіть akonadiconsole за допомогою &krunner; (&Alt;F2) або &konsole;. Натисніть пункт Mail Dispatcher Agent, клацніть на ньому правою кнопкою миші і перервіть виконання поточної дії. У відповідь, ймовірно, буде показано декілька повідомлень про помилки. Поверніться до вікна &kmail; і скористайтеся пунктом меню Файл Надіслати повідомлення з черги. Можливо, тепер все запрацює. Якщо цього не сталося, замість переривання поточної дії спробуйте перемкнути стан (автономний/у мережі) для Mail Dispatcher Agent або перезапустіть все у спосіб, описаний у обхідному шляху 2 попереднього розділу.

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