Przejdź do treści

Ustawienia cookies

Poniżej wypisujemy nazwa po nazwie, co ta strona zapisuje w Twojej przeglądarce. Możesz tu wrócić w każdej chwili; odnośnik „Ustawienia cookies” stoi w stopce każdej strony.

Polityka prywatności §7
isbre
Pomoc

Przeniesienie poczty programem imapsync

imapsync czyta starą pocztę przez IMAP i zapisuje ją w skrzynce u nas, folder po folderze. Niczego u starego dostawcy nie kasuje i można go puścić jeszcze raz, żeby dograł to, co tymczasem doszło.

Najprościej: przeniesiemy pocztę za Ciebie, bez opłat

Pocztę z Twoich domen kopiujemy w ramach migracji w cenie pakietu, także pocztowego. Przy zamówieniu zaznacz „Migracja z innego hostingu” i pole „Przenieście też pocztę”, a jeśli pakiet już masz, napisz na bok@isbre.pl i ustalimy termin. Do kopiowania potrzebujemy haseł do starych skrzynek, najlepiej tymczasowych. Nie wysyłaj ich mailem, sposób przekazania uzgodnimy z Tobą.

Zakres bezpłatnej migracji: Bezpłatnie przeniesiemy wszystkie Twoje strony na standardowym WordPressie albo PHP razem z pocztą ich domen. Dotyczy to każdego pakietu, także pocztowego. Więcej na stronie o migracji.

Są dwie drogi. Pakiety Standard, Pro i Max mają powłokę SSH, więc imapsync zainstalujesz na własnym koncie i skopiujesz pocztę prosto z naszego serwera (kroki 2 do 5). Start i pakiety pocztowe mają tylko SFTP. Tam uruchom imapsync z Dockera na własnym komputerze (krok 6). Kroki 1, 7 i 8 dotyczą obu dróg.

1. Skrzynka najpierw w panelu

imapsync nie zakłada skrzynek, tylko wpisuje pocztę do istniejących. W panelu otwórz usługę, wejdź w Pocztę, kliknij „Nowa skrzynka” i załóż adres taki sam jak u starego dostawcy. Hasło, które tu ustawisz, to hasło drugiego serwera w poleceniach niżej. Domena musi być podpięta do usługi. Jeśli przenosisz też samą domenę, kolejność kroków opisuje strona o przeniesieniu domeny razem z pocztą.

Z pomocy starego dostawcy weź jeszcze adres serwera IMAP, login (zwykle pełny adres) i hasło starej skrzynki. W poleceniach niżej stoją przykłady: imap.stary-dostawca.pl i biuro@firma.pl. Podmień je na swoje.

2. Instalacja na koncie SSH (raz)

Powłokę włączasz w panelu, na ekranie „Pliki (SFTP)”, przełącznikiem „Dostęp przez powłokę (SSH)”. Host, port i użytkownika znajdziesz na tym samym ekranie. Połącz się i zainstaluj imapsync. Pakietu z systemu nie zainstalujesz, bo nie masz roota, więc moduły Perla i sam program lądują w Twoim katalogu domowym. Całość zajmuje około minuty.

ssh -p PORT UŻYTKOWNIK@HOST
curl -fsSL https://cpanmin.us -o ~/cpanm && chmod +x ~/cpanm
~/cpanm --notest --local-lib=$HOME/perl5 local::lib
echo 'eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)"' >> ~/.bashrc && source ~/.bashrc
~/cpanm --notest Mail::IMAPClient IO::Socket::SSL Digest::HMAC Term::ReadKey \
  Data::Uniqid File::Copy::Recursive Authen::NTLM IO::Tee Unicode::String Readonly \
  Sys::MemInfo Regexp::Common Encode::IMAPUTF7 JSON::WebToken JSON LWP::UserAgent \
  Crypt::OpenSSL::RSA File::Tail HTML::Entities Module::ScanDeps Proc::ProcessTable
git clone --depth 1 https://github.com/imapsync/imapsync.git ~/imapsync
~/imapsync/imapsync --version

Ostatnie polecenie wypisuje wersję. Jeśli ją widzisz, instalacja się udała i drugi raz jej nie powtarzasz.

3. Hasła w plikach, nie w poleceniu

Hasło wpisane w poleceniu zostaje w historii powłoki i widać je na liście procesów. Dlatego zapisz oba hasła w plikach dostępnych tylko dla Ciebie. Polecenie niżej najpierw usuwa stare pliki o tych nazwach, tworzy puste z prawami 600 i dopiero potem dopisuje do nich hasła, o które pyta po kolei i niczego przy tym nie wyświetla. Dzięki temu hasło nigdy nie leży w pliku czytelnym dla innych, także gdy pliki istniały wcześniej. Połączone przez && kroki przerywają się przy pierwszym błędzie.

(
  umask 077
  rm -f ~/.p1 ~/.p2 &&
  install -m 600 /dev/null ~/.p1 &&
  install -m 600 /dev/null ~/.p2 &&
  IFS= read -rsp 'Hasło starej skrzynki: ' p && echo && printf '%s' "$p" >> ~/.p1 &&
  IFS= read -rsp 'Hasło nowej skrzynki: ' p && echo && printf '%s' "$p" >> ~/.p2
)

4. Próba bez kopiowania

Zacznij od próby: --justfolders --dry loguje się na oba serwery i wypisuje, które foldery powstałyby u nas, ale niczego nie kopiuje. Opcja --automap zgaduje, że „Sent Items” u starego dostawcy to nasze „Sent”, i podobnie ze szkicami czy koszem. Gdy któryś login albo hasło jest błędne, widzisz to po jednym uruchomieniu.

Opcje --ssl1 i --ssl2 wymuszają szyfrowane połączenie IMAPS na porcie 993. Bez nich imapsync szyfruje tylko wtedy, gdy uda mu się to wykryć, a przy niepowodzeniu wysyła hasło i pocztę jawnym tekstem. Nasz serwer mail.isbre.pl ma port 993, więc --ssl2 zostaje zawsze. Jeśli stary serwer nie ma 993 i oferuje tylko port 143 ze STARTTLS, zamień --ssl1 na --tls1. Gdy stary serwer w ogóle nie szyfruje, imapsync zatrzyma się z błędem. Zapytaj wtedy dostawcę o ustawienia szyfrowanego IMAP.

~/imapsync/imapsync \
  --host1 imap.stary-dostawca.pl --user1 biuro@firma.pl --passfile1 ~/.p1 --ssl1 \
  --host2 mail.isbre.pl --user2 biuro@firma.pl --passfile2 ~/.p2 --ssl2 \
  --automap --justfolders --dry

5. Kopiowanie w tle

To samo polecenie bez --justfolders --dry, uruchomione przez nohup w tle. Kopia przeżyje rozłączenie z SSH, a postęp zobaczysz w pliku z logiem. Zamiast biuro w nazwie pliku wpisz nazwę skrzynki, jeśli kopiujesz kilka.

nohup ~/imapsync/imapsync \
  --host1 imap.stary-dostawca.pl --user1 biuro@firma.pl --passfile1 ~/.p1 --ssl1 \
  --host2 mail.isbre.pl --user2 biuro@firma.pl --passfile2 ~/.p2 --ssl2 \
  --automap > ~/imapsync-biuro.log 2>&1 &
tail -f ~/imapsync-biuro.log

tail -f przerwiesz klawiszami Ctrl+C, kopiowanie pójdzie dalej. Samo kopiowanie zatrzymasz poleceniem pkill -f imapsync/imapsync. Przerwanie niczego nie psuje: to samo polecenie uruchomione ponownie dogra tylko brakujące wiadomości. Opcji --delete1 i --delete2 nie dodawaj nigdy, bo kasują wiadomości, a wtedy kopia przestaje być kopią.

6. Bez SSH: Docker na własnym komputerze

Masz Dockera? Wtedy ten sam program uruchomisz u siebie, bez instalowania imapsync. Hasła trzymaj w pliku hasla.env, w katalogu, z którego uruchamiasz polecenia, i poza katalogami synchronizowanymi do chmury. Najpierw utwórz go jako pusty plik dostępny tylko dla Ciebie (Linux, macOS, WSL), dopiero potem wpisz w nim hasła, żeby nie leżały w pliku czytelnym dla innych użytkowników komputera:

install -m 600 /dev/null hasla.env

Otwórz go w edytorze tekstu, na przykład nano hasla.env, i wpisz obie linie, bez cudzysłowów. Haseł nie wpisuj w terminalu, bo zostałyby w historii powłoki. Na Windowsie zapisz plik w swoim folderze użytkownika (na przykład w Dokumentach), nie we wspólnym katalogu, i uruchamiaj polecenia z tego folderu.

IMAPSYNC_PASSWORD1=hasło-starej-skrzynki
IMAPSYNC_PASSWORD2=hasło-nowej-skrzynki

Najpierw próba, tak samo jak w kroku 4:

docker run --rm --env-file ./hasla.env gilleslamiral/imapsync imapsync \
  --host1 imap.stary-dostawca.pl --user1 biuro@firma.pl --ssl1 \
  --host2 mail.isbre.pl --user2 biuro@firma.pl --ssl2 \
  --automap --justfolders --dry

Gdy próba wygląda dobrze, uruchom to samo bez --justfolders --dry. Terminal ma zostać otwarty do końca kopiowania, a przerwane polecenie możesz uruchomić jeszcze raz.

docker run --rm --env-file ./hasla.env gilleslamiral/imapsync imapsync \
  --host1 imap.stary-dostawca.pl --user1 biuro@firma.pl --ssl1 \
  --host2 mail.isbre.pl --user2 biuro@firma.pl --ssl2 \
  --automap

Polecenia są w składni powłoki bash (Linux, macOS, WSL). W PowerShellu zamień ukośnik \ na końcu wierszy na odwrotny apostrof albo wpisz całość w jednym wierszu.

7. Po przepięciu poczty: jeszcze raz

Gdy zmienisz rekord MX albo serwery nazw, stary serwer przez jakiś czas dalej odbiera pocztę. Uruchom kopiowanie jeszcze raz zaraz po zmianie i następnego dnia. imapsync dołoży tylko wiadomości, których u nas jeszcze nie ma.

Jedno zastrzeżenie: pełne kopiowanie powtarzaj tylko dopóki nie pracujesz w nowej skrzynce. Gdy już w niej czytasz, kasujesz i przenosisz listy między folderami, kolejny przebieg przywróciłby skasowane wiadomości i cofnął oznaczenia przeczytania. Powody i kolejność całego przenoszenia opisuje wpis o przenoszeniu poczty bez zgubionych wiadomości.

8. Usuń pliki z hasłami

Gdy ostatnie kopiowanie się skończy, skasuj pliki z hasłami. Na koncie SSH:

rm ~/.p1 ~/.p2

W Dockerze, na własnym komputerze:

rm hasla.env

Jeśli użyłeś prawdziwego hasła do starej skrzynki, zmień je po przeniesieniu poczty.

9. Czego pilnujemy po naszej stronie

Z konta SSH łączysz się z naszym serwerem poczty tak, jak robią to Twoje strony, i dla takich połączeń mamy dwa bezpieczniki. Warto je znać, zanim któryś zadziała.

  • Błędne hasło do skrzynki. Po 10 nieudanych logowaniach do jednej skrzynki w ciągu 10 minut skrzynka przestaje wpuszczać logowania z serwerów hostingu Isbre na 15 minut od ostatniej nieudanej próby. Webmail i program pocztowy na telefonie działają dalej. Stąd rada, żeby zawsze zacząć od próby z kroku 4 i nie puszczać imapsync w pętli, dopóki hasło nie jest sprawdzone.
  • Za dużo kopii naraz. Kopiuj po kilka skrzynek jednocześnie, nie po kilkadziesiąt. Gdy Twoje konto zacznie otwierać zbyt wiele nowych połączeń do serwera poczty, odetniemy je od niego na 15 minut. To dotyczy też wysyłki poczty ze stron na tym koncie.

Z Dockera łączysz się z własnego komputera, jak program pocztowy, więc obowiązują zwykłe zabezpieczenia serwera poczty przed zgadywaniem haseł: po serii błędnych logowań adres może zostać czasowo zablokowany. Zacznij więc od próby i tutaj.

Utknąłeś na którymś kroku? Napisz na bok@isbre.pl. Wszystkie tematy pomocy: pomoc.