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 или др.), то това съобщение бива изтеглено от сървъра и може да се прочете само и единствено от този клиент.
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 инструмента.
Как функционира imapsync по подразбиране?
За да работи коректно, imapsync се нуждае от достъп до IMAP клиента чрез три основни параметъра:
- IMAP сървър хост - това може да е както hostname на сървъра така и IP адрес;
- Потребителско име;
- Парола;
Тези параметри следва да се предоставят, както за оригиналния акаунт (source account), от който се чете информацията, така и за акаунта приемник (destination аccount), където ще бъде синхронизирана информацията.
Основното поведение на impasync се изразява в следното:
- Imapsync работи на ssl или tls портовете, aко те са разрешени;
- Imapsync синхронизира всички директории от сървъра източник (host1);
- Imapsync синхронизира всички писма от сървъра източник (host1), с изключение на тези, които са дубликирани;
- Imapsync НЕ синхронизира вече синхронизирани съобщения;
- Imapsync синхронизира всички флагове, които са позволени на сървъра приемник (host2);
- Imapsync синхронизира отново флаговете на съобщения, които вече са били синхронизирани.
Как се въвежда командата 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
Особености на командата 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!
Разбира се, можете да въведете командата и на няколко реда, според синтаксиса за съответната операционна система. В края на командата можете да добавите желаните от Вас опции.
Използване на тест акаунт на сървъра приемник (host2)
Добра практика е да се използва тест акаунт на сървъра приемник (host2). Защо?
Imapsync не прави промени по акаунта на оригиналния мейл акаунт, разположен на host1, тъй като от него само чете.
Изключение има единствено, когато се ползва опцията --delete1. Тази опция трие писмата, които успешно са прехвърлени на host2, като не трие тези, които не са прехвърлени.
По различен начин стои въпроса за пощенската кутия, разположена на host2, тъй като imapsync създава папки, добавя съобщения, задава флагове на съобщенията.
Именно поради тази причина, когато се прави синхронизация към вече действащ имейл акаунт, е добра практика да се направи тестова синхронизация към тестови акаунт, разположен на host2 и да се наблюдава дали всичко преминава успешно.
Възможни проблеми при използване на командата imapsync
Най-често срещаният проблем е при използване на командата imapsync е при трансфера папките да не се прехвърлят коректно. Това обичайно се случва при съществени разлики между host1 и host2.
Друго, което може да се случи е дупликиране на писмата при вторично или последващо синхронизиране. Това се случва рядко, най-вече в случаите, когато host2 сървърът презаписва някой от следните хедъри на писмото - "Message-Id" или "Received".
Има възможност да избегнете дублирането на имейлите, като това ще бъде описано подробно в отделна статия.
Надяваме се да сме Ви полезни с този въвеждащ материал на тема Imapsync! Очаквайте следващите полезни статии, с които да надградите знанията, получени към момента.