Как да използвате Imapsync за синхронизиране на имейл акаунти с IMAP протокол

Imapsync е инструмент (command-line tool) за копиране, преместване, архивиране или синхронизиране на имейл акаунти, използвайки IMAP протокола.

Командата се изпълнява в терминала/конзолата на Вашата операционна система. От скоро тя разполага и с графична среда, която има силно ограничени възможности, в сравнение със самата команда.

Imapsync работи с повечето операционни системи, сред които:

  • Linux
  • Windows
  • OS X (Macintosh/Darwin world).

Инструментът Imapsync е написан на програмния език Perl, тъй като Perl се използва почти навсякъде.

Различните операционни системи имат и своите различия. Именно поради това инструментът imapsync има различен синтаксис, когато се използва в различните системи. По-долу ще разгледаме някои от тези особености.

Основни протоколи за достъпване на мейл акаунтите

Преди да разгледаме по-подробно imapsync, е добре да познаваме протоколите, които се използват за достъпване на имейл акаунтите. Съществуват 3 такива протокола, а именно:

  • POP3
  • IMAP
  • HTTP

Нека разгледаме всеки един от тях по отделно в редовете по-долу.

POP3 (Post Office Protocol)

POP3 (Post Office Protocol) е най-старият протокол, който позволява достъп само до основната директория на имейл акаунта, наречена INBOX. С този протокол имейлите нямат флагове като - Seen/UnSeen, Forwarded, or Flagged.

Основната разлика между POP3 и останалите два протокола е, че когато дадено съобщение бъде прочетено през мейл клиент (Outlook, Thunderbird или др.), то това съобщение бива изтеглено от сървъра и може да се прочете само и единствено от този клиент.

Delta Cloud Backup -  напълно автоматизиран, инкрементален бекъп за надеждно архивиране на данните компресирани, криптирани и дедупликирани в разпределена архитектура.

IMAP (Internet Message Access Protocol)

IMAP (Internet Message Access Protocol) протоколът позволява достъп до цялата файлова структора на пощенския акаунт или казано на разговорен език - до всички папки в имейл акаунта.

Други предимства на IMAP са:

  • позволява временен достъп до пощенската кутия от няколко клиента;
  • добавя флагове на имейлите;
  • позволява търсенето на имейли по различни критерии - дата, заглавие, размер на писмото и др.;
  • имейлите се запазват на мейл съръвра след като биват прочетени от имейл клиента.

HTTP (HyperText Transfer Protocol)

HTTP (HyperText Transfer Protocol) е протоколът, с който сърфирате в интернет. Браузърите като Google Chrome, Mozilla Firefox, Internet Explorer, Safari и др., са HTTP клиенти.

Мейл клиентите, които използват HTTP протокола се наричат webmail. Webmail клиентите по подразбиране използват IMAP протокола и по тази причина не се различават от него.

Примери за браузър базирани клиенти са:

  • Gmail
  • Yahoo
  • Exchange
  • Zimbra
  • Office365

Като заключение можем да обобщим, че IMAP протоколът е най-използван, поради посочените по-горе негови предимства и именно поради това съществува imapsync инструмента.

Какво е Cloud VPS хостинг - предимства, недостатъци и алтернативи

Как функционира imapsync по подразбиране?

За да работи коректно, imapsync се нуждае от достъп до IMAP клиента чрез три основни параметъра:

  • IMAP сървър хост - това може да е както hostname на сървъра така и IP адрес;
  • Потребителско име;
  • Парола;

Тези параметри следва да се предоставят, както за оригиналния акаунт (source account), от който се чете информацията, така и за акаунта приемник (destination аccount), където ще бъде синхронизирана информацията.

Основното поведение на impasync се изразява в следното:

  • Imapsync работи на ssl или tls портовете, aко те са разрешени;
  • Imapsync синхронизира всички директории от сървъра източник (host1);
  • Imapsync синхронизира всички писма от сървъра източник (host1), с изключение на тези, които са дубликирани;
  • Imapsync НЕ синхронизира вече синхронизирани съобщения;
  • Imapsync синхронизира всички флагове, които са позволени на сървъра приемник (host2);
  • Imapsync синхронизира отново флаговете на съобщения, които вече са били синхронизирани.
Delta Marketplace - как да създадете VPS с предварително инсталиран софтуер с няколко клика?

Как се въвежда командата imapsync?

За да се изпълни командата imapsync, в командния ред се въвеждат множество опции. Това води до риска от допускане на синтактични грешки при изписването на различните променливи. Именно поради тази причина е по-удобно всяка опция да се изписва на нов ред.

Как се изписва командата imapsync в Unix и OS X системи

Ето как изглежда комадния ред при въвеждане на командата imapsync в Unix и OS X системите, ако всяка опция се въвежда на отделен ред:

imapsync \

       --host1 test.delta.bg \

       --user1 test1@delta.bg \

       --password1 Secretpassword1! \

Или по този начин, ако опциите се изписват една след друга на един ред:

imapsync --host1 test.delta.bg --user1 test1@delta.bg --password1 Secretpassword1! ...

Как се изписва командата imapsync в Windows операционните системи

Ето как изглежда комадния ред при въвеждане на командата imapsync в Windows операционните системи, когато всяка опция се изписва на отделен ред:

imapsync.exe ^

       --host1 test.delta.bg ^

       --user1 test1@delta.bg ^

       --password1 Secretpassword1! ^

И алтернативно, когато всички опции са последователно въведени на един ред:

imapsync --host1 test.delta.bg --user1 test1@delta.bg --password1 Secretpassword1! ...

Опции за изпълнение на командата imapsync

Imapsync разполага с множество опции, като за успешен трансфер са необходими само някои от тях. В масовите случаи се използват  следните опциите:

  • --host1
  • --host2
  • --user1
  • --user2
  • --password1
  • --password2 
Какво-е-DDoS-атака-и-как-да-се-защитим-блог-пост-copy

Особености на командата imapsync

А ето и характерни особености при въвеждане на командата imapsync:

  • Опциите винаги започват с два минуса (--) пред името си, например:
    • --host1
    • --host2
  • Опциите, които се отнасят за оригиналният мейл акаунт (source account), завършат с цифрата 1, например
    • --host1
    • --user1
    • --password1
  • Опциите, които се отнасят за мейл акаунт приемник (destination account) завършат с цифрата 2, например:
    • --host2
    • --user2
    • --password2
  • Някои опции се нуждаят от стойност, която се записва веднага след самата опция. Пример: 
    • --host1 test.delta.bg
  • Някои опции са самостоятелни, например
    • --nossl1

Няма изричен регламент в каква последователност да се въвеждат опциите. Единственото условие е, ако опциите се нуждаят от стойност, тя да бъде упомената в края.

За да се изгбегнат грешки, препоръчваме да следвате добрите практики, като изписвате командата по следния начин:

imapsync --host1 test.delta.bg --user1 test1@delta.bg --password1 Secretpassword1! --host2 new.server.name --user2 newtest@domain.name --password2 Secretpassword2!

Разбира се, можете да въведете командата и на няколко реда, според синтаксиса за съответната операционна система. В края на командата можете да добавите желаните от Вас опции.

33 основни Linux команди, които бързо можете да научите

Използване на тест акаунт на сървъра приемник (host2)

Добра практика е да се използва тест акаунт на сървъра приемник (host2). Защо?

Imapsync не прави промени по акаунта на оригиналния мейл акаунт, разположен на host1, тъй като от него само чете.

Изключение има единствено, когато се ползва опцията  --delete1. Тази опция трие писмата, които успешно са прехвърлени на host2, като не трие тези, които не са прехвърлени.

По различен начин стои въпроса за пощенската кутия, разположена на host2, тъй като imapsync създава папки, добавя съобщения, задава флагове на съобщенията.

Именно поради тази причина, когато се прави синхронизация към вече действащ имейл акаунт, е добра практика да се направи тестова синхронизация към тестови акаунт, разположен на host2 и да се наблюдава дали всичко преминава успешно.

Какво са TCP и UDP протоколите за управление на обмена на информация, как работят и какви предимства и недостатъци имат.

Възможни проблеми при използване на командата imapsync

Най-често срещаният проблем е при използване на командата imapsync е при трансфера папките да не се прехвърлят коректно. Това обичайно се случва при съществени разлики между host1 и host2.

Друго, което може да се случи е дупликиране на писмата при вторично или последващо синхронизиране. Това се случва рядко, най-вече в случаите, когато host2 сървърът презаписва някой от следните хедъри на писмото - "Message-Id" или "Received".

Има възможност да избегнете дублирането на имейлите, като това ще бъде описано подробно в отделна статия.

Надяваме се да сме Ви полезни с този въвеждащ материал на тема Imapsync! Очаквайте следващите полезни статии, с които да надградите знанията, получени към момента.

Какво е DNS зона и DNS запис, видове DNS записи и как работят?
Борислав Стоянов

Борислав Стоянов

Борислав е част от екипа на делта от 2019 година. Любовта му към Linux операционните системи датира още от ученическите му години. В свободното си време той обича да практикува различни спортове - тенис, волейбол, ски и други.