Синхронізація контактів між поштовою програмою на ПК і смартфоном «Omnibus rebus

Тема не зовсім звичайна для цього блогу, але можливо мій досвід і в цій області буде корисний і полегшить кому-небудь рішення щодо синхронізації контактів (адресної книги) між поштовою програмою на персональному комп'ютері і смартфоном
Тема не зовсім звичайна для цього блогу, але можливо мій досвід і в цій області буде корисний і полегшить кому-небудь рішення щодо синхронізації контактів (адресної книги) між поштовою програмою на персональному комп'ютері і смартфоном. Синхронізація передбачає, що якщо Ви додаєте або змінюєте контакти людини на одному пристрої, то вони в автоматичному режимі змінюються і на іншому пристрої - це дуже зручно, і гарантує що ніяка інформація не згубиться, а на обох пристроях постійно буде найсвіжіша адресна книга. Після 8 років використання у мене зламався телефон, і я купив новий - виявилося, що багато функцій за ці роки дуже сильно просунулися, хоча якісь речі помінялися не в кращу сторону. Основний негативний момент - розробники програм для сучасних смартфонів і розробники поштових програм на «великому» комп'ютері не знайшли спільної мови для синхронізації контактів - вірніше протокол такого обміну розроблений, але в його застосуванні є свої підводні камені, про що я розповім нижче. У мене смартфон на базі Андроїд, але описані мною нижче рішення годяться також для iPhone, Windows Phone і Blackberry.

На всіх Андроїд-смартфонах можлива синхронізація контактів з аккаунтом Google (і це навіть відбувається за замовчуванням якщо Ви спеціально не відключить таку опцію), але при цьому користуватися контактами можна тільки через інтерфейс GMail - тоді як поштові програми на ПК безпосередньо ні з аккаунтом Google, ні зі смартфоном не буде синхронізовано. Виходить, що адреси електронної пошти треба вводити двічі - один раз в смартфон, один раз в поштову програму; та й один і той же людина може бути записана в різних варіаціях на смартфоні і в поштовій програмі. Звичайно, це незручно і збільшує ймовірність того, що в потрібний момент в одному з двох пристроїв не виявиться потрібного емейла. Тому метою даної замітки буде розповідь про те, як автоматизувати обмін контактами між смартфоном і поштовою програмою на ПК - щоб вводити контакт повністю тільки в один пристрій, а на другому цей контакт з'являвся б автоматично. Існує два основних способи домогтися такої синхронізації - або через локально встановлену на комп'ютері програму, або через спеціальний сервер в Інтернет.

Синхронізація через локальну програму (безпосередньо між смартфоном і ПК)
Найбільш простий спосіб - встановити спеціальну програму як на ПК, так і на смартфон. Вона буде синхронізувати контакти при підключенні смартфона до ПК через USB-порт, по Wi-Fi або Bluetooth.
Основне обмеження ряду таких програм - вони дозволяють синхронізувати контакти тільки з платної поштовою програмою Outlook (яка схожа за назвою, але є більш просунутою версією встановлюється разом з Windows за замовчуванням Outlook Express). Є програми, які можна синхронізувати контакти не тільки з платної Outlook, але і з Thunderbird або іншими безкоштовними поштовими додатками з досить розвиненою функціональністю. Крім синхронізації, такі програми дозволяють робити резервні копії пам'яті смартфона і управляти його вмістом - смс, фотографіями, історією дзвінків, настройками і ін. Корисні бувають такі програми і при покупці нового смартфона - вони дозволяють повністю скопіювати інформацію зі старого апарату на новий.

  • MyPhoneExplorer - безкоштовна програма. Дозволяє синхронізувати контакти та календар між смартфоном на базі Андроїд і програмами Outlook, Windows contacts, Thunderbird, SeaMonkey, Lotus Notes. Крім цього, дозволяє скопіювати на ПК смски зі смартфона, і виробляти ряд налаштувань в смартфоні. інструкції по налаштуванню програми можна знайти на її сайті. На ряді форумів згадано, що іноді програма не функціонує належним чином - але чи стосується це до останньої версії не знаю.
  • MOBILedit - платна програма. Володіє розширеною функціональністю - може працювати зі смартфонами на базі Android, iPhone, Windows Phone, Windows Mobile, Blackberry, Symbian. Але з поштових програм на ПК підтримує тільки MS Outlook і MS Outlook Express. програма добре документована , Дозволяє набирати смски з комп'ютера, робити резервні копії, може синхронізувати між собою кілька мобільних пристроїв на різних платформах.
  • BirdieSync - платна програма. Дозволяє синхронізувати контакти між смартфоном на базі Android, Pocket PC, або iPhone з поштовими програмами Thunderbird і Sunbird. Дозволяє синхронізувати кілька мобільних пристроїв і комп'ютерів.
  • GO Contact Sync Mod - безкоштовний додаток. Дозволяє синхронізувати контакти та календар між Outlook і обліковим записом Google (і вже через неї зі смартфоном). Функцій резервного копіювання або управління іншим вмістом смартфона не надає.
  • Окремі виробники смартфонів випускають програми, які можна синхронізувати контакти між Outlook (або Outlook Express) і тільки смартфонами даного виробника: HTC Sync - для HTC, Kies - для Samsung, та ін.

Оскільки я користуюся поштовою програмою TheBat, то жодна з перерахованих вище програм не підходить. Крім того, можуть не зовсім підійти такі програми і тим, хто хоче синхронізувати контакти на двох комп'ютерах (робочому і домашньому). Тому розглянемо варіант синхронізації контактів через спеціальні сервери в Інтернет.

Синхронізація через CardDAV-сервер (дані між смартфоном і ПК передаються через спеціальний сервер в Інтернет)
Спочатку наведу трохи теорії. Цей спосіб передбачає обмін контактами між смартфоном і поштовою програмою зі спеціального протоколу CardDAV, а якщо треба синхронізувати події календаря - то по протоколу CalDAV. Великою перевагою CardDAV (і CalDAV) є наявність в Інтернет безкоштовних для приватних осіб серверів, які дозволяють безпечно зберігати і обмінюватися контактами між смартфоном і поштовою програмою - при цьому користувач повинен просто ввести на обох пристроях ім'я сервера, отримані при реєстрації ім'я та пароль. Вся внутрішня «кухня» забезпечується адміністраторами серверів, які існують за рахунок плати корпоративних клієнтів або користувачів, яким потрібна синхронізація контактів між 3 і більше пристроями (наприклад, єдина адресна книга може підтримуватися на двох комп'ютерах і п'яти телефонах). І з ПК, і зі смартфона програма буде передавати контакти на сервер - тобто синхронізація відбуватиметься коли принаймні один з пристроїв підключено до Інтернету. Одночасного підключення Ваших пристроїв до Інтернету не потрібно, тому що спочатку з сервером може синхронізуватися поштова програма на ПК, а коли до Інтернету підключиться смартфон - то з сервером синхронізується і він.
В принципі, будь-який з DAV-серверів можна встановити і у себе на локальному ПК, який буде використовуватися як сервер - однак це вимагає просунутих навичок (коротко це описано наприклад тут , тут , тут і тут ). Просунуті користувачі можуть вибрати CardDAV і CalDAV сервер на будь-який смак з безкоштовних Baikal , radicale , SabreDAV , ownCloud ). При виборі сервера треба враховувати також який тип синхронізації підтримує додаток на смартфоні і поштова програма - Digest або Basic, але звичайним користувачам ці деталі не важливі.
Тепер перейдемо до практики. Умовно всі дії можна розбити на три кроки.
По-перше, Вам треба зареєструватися на одному з веб-сервісів, які підтримують CardDAV. Все равно какой з таких сервісів Ви оберете: Zimbra , Yandex , fruux , FastMail , GMX , Posteo або інші .
Як веб-сервісу з підтримкою CardDAV можна використовувати і власне Google (і тоді всі контакти будуть ще і доступні через веб-інтерфейс Gmail), проте для нього описані збої при синхронізації і по окремим відгуками іноді відбувається «з'їдання» першої цифри телефону якщо в книзі контактів він починається з «8» а не «+7». Так це чи ні - на знаю, синхронізацію через Google я пробувати не став.
Важливим, і аж ніяк не інтуїтивним, дією після реєстрації в таких веб-сервісах є необхідність одноразового початкового імпорту адресної книги з поштової програми в акаунт веб-сервісу в форматі vCard. Потрібно це для того, щоб веб-сервіс міг відстежувати, які саме контакти були додані або змінені в поштовій програмі і на смартфоні. Без цього одноразового початкового імпорту пристрої будуть нормально приєднуватися до веб-сервісу, але синхронізації контактів відбуватися не буде. Цей момент прописаний в інструкціях тільки до деяких веб-сервісів з підтримкою CardDAV, і якщо його не знати - то можна втратити досить багато часу на з'ясування причин чому все налаштовано як треба, але не працює. Для того щоб синхронізація між пристроями відбувалася, в веб-сервіс повинен бути внесений хоча б один контакт.
По-друге, Вам треба встановити спеціальний додаток на смартфон. Як налаштовувати обраної програми можна дізнатися або на перерахованих вище веб-сервісах, або на сайтах самих Андроїд-додатків.
Для Андроїд-смартфонів існує кілька додатків, які можна синхронізувати контакти та події календаря через протоколи CardDAV і CalDAV. Можете вибрати одну з наведених нижче:

  • DAVDroid - додаток з повністю відкритим вихідним кодом і підтримкою російської мови в інтерфейсі, дозволяє синхронізувати й контакти, і календар. Якщо встановлювати його через GooglePlay - то воно є платним, якщо встановлювати його ж через F-Droid - то воно безкоштовно. Інструкції з налаштування можна знайти тут .
  • CardDAV-Sync (А якщо треба синхронізувати і календар - то CalDAV-Sync ). Інструкції з налаштування можна знайти тут .
  • ContactSync

Такі ж програми існують і для смартфонів на базі iPhone, BlackBerry і Windows Mobile.
По-третє, Вам треба налаштувати поштову програму. Тут проблем і особливостей найбільше: тому що не всі поштові програми підтримують протокол CardDAV, і навіть ті які підтримують - часом роблять це не зовсім коректно. Давайте розберемо кожну поштову програму окремо.
Thunderbird. Вбудованої підтримки CardDAV немає, тому треба встановлювати плагін SOGo Connector . Як його встановити і налаштувати написано тут . Мені Thunderbird не дуже подобається, оскільки в ньому відсутня добре продумана система шаблонів, і цей недолік лише частково нівелюється додатковим плагіном SmartTemplate4 .
Outlook. Вбудованої підтримки CardDAV немає, тому треба встановити безкоштовний плагін Outlook CalDav Synchronizer (Є також платні плагіни Universal WebDAV Collaborator , EVO Collaborator , OutlookDAV ).
ThaBat! В останній версії з'явилася вбудована підтримка CardDAV - але працює вона неправильно (принаймні у версії 7.3.4)! Всі контакти з адресної книги ThaBat правильно передаються на сервер з підтримкою CardDAV (і з сервера на смартфон). Але будь-які зміни, зроблені на сервері або на Андроїд всередині одного контакту (наприклад, зміна або додавання номера телефону для вже існуючого контакту) призводять до часткового зникнення даних в адресній книзі ThaBat (тоді як на Андроїд все залишається в цілості), а іноді контакти дублюються або в ThaBat «злітають» шаблони написання листів для групи або даного контакту, також між ThaBat і сервер не синхронізуються дати днів народжень (всі ці проблеми визнають і в службі підтримки ThaBat). На жаль, це робить неможливим повноцінну синхронізацію між ThaBat, CardDAV-сервером і смартфоном.
Але оскільки в ThaBat є інші зручні рішення і я хочу продовжувати ним користуватися, то я виробив таку систему дій для адекватної синхронізації контактів між ThaBat і смартфоном:
1. На пристрої Андроїд я вводжу тільки нові контакти в адресну книгу аккаунта CardDAV-додатки (тобто при введенні нового контакту в поле «Зберігати в» треба вказувати щоб він зберігався в акаунті CardDAV-додатки), і за допомогою Андроїд-додатки ці нові контакти синхронізуються з CardDAV-сервером. У ThaBat окрема (не головна) адресна книга також синхронізується з CardDAV-сервером в автоматичному режимі. Таким чином, всі нові контакти треба вводити тільки на Андроїд, і вони автоматично перекидаються в адресну книгу ThaBat.
2. Періодично я «перекидаю» ці нові контакти всередині ThaBat з адресної книги, яка синхронізується з сервером, в основну адресну книгу. Причому нові контакти можна перекидати в окремі групи (категорії) контактів адресної книги - що дозволяє їх нормально впорядковувати (тоді як по CardDAV жодна поштова програма ні з одним смартфоном в принципі не може синхронізувати інформацію до якої групи в адресній книзі належить контакт, навіть коли все інше вміст контакту синхронізується нормально).
3. Після «перекидання» усіх даних в основну адресну книгу ThaBat я стираю всі контакти в адресній книзі на смартфоні (тобто на смартфоні не залишається взагалі жодного контакту).
4. Відразу після цього я вивантажують все контакти з адресної книги ThaBat в форматі vCard, і імпортують цей vCard-файл в адресну книгу на смартфоні (важливо що імпорт з vCard-файлу проводиться саме в адресну книгу телефону, а не в адресну книгу аккаунта Google або аккаунта CardDAV-додатки).
Таким чином, і на смартфоні, і в ThaBat виходить однаковий по вмісту набір контактів - для чого і потрібні всі ці дії.
У цій схемі є два не надто комфортних моменту. По-перше, 3 і 4 кроки треба робити вручну - але раз на місяць або пару місяців це не дуже обтяжливо, і в принципі робиться в кілька кліків. По-друге, і це саме незручне - будь-які зміни в уже існуючих контактах (наприклад, додавання нового номера телефону для вже існуючого контакту, або зміну поштової адреси) треба вносити тільки в ThaBat (якщо вносити ці зміни в смартфон, то на 3 кроці все буде стерто).
Деякі інші поштові програми також підтримують синхронізацію адресних книг по протоколу CardDAV (платна eM Client під Windows, безкоштовні GNOME Evolution і KDE KOrganizer для Linux, і ін. ), Але я не вдавався для них в подробиці.

Який би з наведених вище варіантів Ви не обрали - у будь-якому випадку між поштовою програмою і мобільним пристроєм завжди буде підтримуватися єдиний список контактів (і при бажанні - подій календаря).

Березня 9th 2017