Moving Menu

Jak wygląda migracja poczty?

corner Jak wygląda migracja poczty?
Podczas zmiany serwera migracja poczty jest często jedną z bardziej newralgicznych czynności. W niniejszym artykule pokażę jak w prosty sposób przenieść konta pocztowe z jednego serwera na drugi. Zapraszam!

 

Przypadek I - dostęp do skrzynek poprzez protokół IMAP

Sytuacja, w której nie mamy dostępu bezpośrednio do plików fizycznych z wiadomościami. Występuje ona często w przypadku posiadania poczty na kontach hostingowych. W takiej sytuacji migracja polega na skopiowaniu wiadomości pomiędzy skrzynkami, które są skonfigurowane w kliencie pocztowym. Kopiowanie wiadomości w tym przypadku odbywa się poprzez protokół IMAP - dokładnie ten sam, który używany jest w klientach pocztowych do odbioru wiadomości.

 Co jest potrzebne do migracji?

Poniżej znajduje się lista rzeczy, które są niezbędne do przeprowadzenia migracji w tym przypadku:

  • zainstalowany lokalnie na PC klient pocztowy, np. Mozilla Thunderbird
  • lista kont pocztowych do przeniesienia wraz z hasłami
  • dostęp do skrzynek poprzez protokół IMAP
  • możliwość zmiany delegacji DNS domeny, w której posiadamy pocztę - dotyczy najbardziej popularnego przypadku,  w którym migrowane konta będą działać dalej w tej samej domenie
  • dostęp do nowego serwera

W przykładzie posłużymy się skrzynką pocztową kontakt@migracja.tk do której dane konfiguracyjne wyglądają następująco:

  • Serwer poczty przychodzącej IMAP: mail.migracja.tk, port 143
  • Serwer poczty wychodzącej SMTP: mail.migracja.tk, port 587

Podpięcie domeny

Na początek należy podpiąć docelową domenę, w której mamy pocztę do nowego serwera - na tym etapie nie zmieniamy delegacji DNS domeny! Po podpięciu domeny tworzymy takie same konta pocztowe na nowym serwerze, jakie były dostępne na starym. Dla wygody użytkowników warto jest ustawić takie same hasła do nowo utworzonych skrzynek, jakie były na starym serwerze.

Konfiguracja skrzynek w kliencie pocztowym

Stare skrzynki Na początek konfigurujemy obecne skrzynki pocztowe w kliencie pocztowym według zaleceń dostawcy konta hostingowego/serwera. migracja_poczty1 Nowe skrzynki Następnie należy skonfigurować skrzynki, które utworzyliśmy na nowym serwerze. UWAGA: W podczas konfiguracji nie można podać serwera IMAP i SMTP takiego jak do skrzynki na starym serwerze. Do kont hostingowych większości dostawców dołączane są tzw. subdomeny techniczne dostępne od razu po aktywacji konta. W przypadku kont hostingowych Kylos taka domena ma postać nazwa.kylos.pl, gdzie nazwa jest dowolnie wybrana podczas zakupu konta. Jeżeli serwer, na który migrowana jest poczta nie posiada żadnej domeny można posłużyć się adresem IP, który musi zostać podany w polu konfiguracji serwera IMAP i SMTP w kliencie pocztowym. W naszym przykładzie posłużymy się kontem hostingowym demo15.kylos.pl - adres ten może być wykorzystany jako adres serwera IMAP i SMTP na czas migracji. migracja_poczty2

Kopiowanie zawartości pomiędzy skrzynkami w kliencie pocztowym

Po skonfigurowaniu starych i nowych skrzynek powinny być one widoczne w kliencie pocztowym. Zanim rozpoczniemy kopiowanie należy się upewnić, że wszystkie foldery zostały zasubskrybowane - w ten sposób nic nie zostanie pominięte podczas kopiowania. W programie Mozilla Thunderbird po kliknięciu na właściwą skrzynkę należy wybrać przycisk Subskrybuj foldery. migracja_poczty3 Po dokonaniu subskrybcji wszystkich folderów można przystąpić do kopiowania. Kopiowanie należy wykonać kolejno dla każdego folderu. 1. Wchodzimy do danego folderu w starej skrzynce i zaznaczamy wszystkie wiadomości (skrót Ctrl + A). 2. Klikamy prawym przyciskiem myszy i wybieramy Kopiuj do wskazując nową skrzynkę i właściwy folder. migracja_poczty4 3. Czynności z punktów 1 - 2 wykonujemy dla wszystkich folderów w starej skrzynce. Jeżeli mamy foldery, których nie ma w nowej to należy je utworzyć i dokonać kopiowania zawartości.

Przypadek II - bezpośredni dostęp do plików z pocztą

Serwery poczty w systemach Linuksowych przechowują pocztę w większości przypadków w postaci katalogów zwanych Maildir'ami (inny format przechowywania wiadomości to tzw. Mbox). Katalog z pocztą znajduje się zazwyczaj w katalogu domowym danego użytkownika na serwerze. Struktura plików konkretnego Maildir'a prezentuje się następująco:

  • cur - wiadomości odczytane znajdujące się w skrzynce
  • new - wiadomości jeszcze nie odczytane
  • tmp - katalog tymczasowy

Powyższa organizacja występuje w każdym z katalogów pocztowych:

  • Sent{cur, new, tmp} - wiadomości wysłane
  • Drafts{cur, new, tmp} - szkice
  • Trash{cur, new, tmp} - kosz

Jeżeli w kliencie pocztowym utworzony zostanie nowy katalog to na serwerze w jego obrębie tworzona jest trójka katalogów (cur, new, tmp).

Jak odnaleźć katalog własnej skrzynki pocztowej na serwerze?

cPanel W panelu administracyjnym cPanel skrzynki pocztowe danego użytkownika tworzone są w następującej ścieżce:

/home/{nazwa użytkownika}/mail/{domena}/{nazwa skrzynki}/

Nazwa użytkownika jest loginem do cPanelu, zatem nasza przykładowa skrzynka kontakt@migracja.tk utworzona na koncie użytkownika demo15, będzie znajdować się pod poniższą ścieżką:

/home/demo15/mail/migracja.tk/kontakt/

  migracja_poczty5 DirectAdmin W panelu administracyjnym DirectAdmin skrzynki pocztowe również znajdują się w katalogu domowym użytkownika:

/home/{nazwa użytkownika}/imap/{domena}/{nazwa skrzynki}/Maildir/

Nasza przykładowa skrzynka kontakt@migracja.tk utworzona na koncie użytkownika admin, będzie znajdować się w następującej ścieżce:

/home/admin/imap/migracja.tk/kontakt/Maildir/

  migracja_poczty6 Różnice między Maildir'ami w cPanelu i DirectAdminie Wspomniane panele stosują trochę różniące się między sobą nazewnictwo domyślnie tworzonych katalogów w skrzynce (tabela poniżej). migracja_poczty9 W momencie, gdy migracja odbywa się pomiędzy serwera, które są pod kontrolą różnych paneli administracyjnych warto zmienić nazwy domyślnych katalogów na takie, które są zgodne z danym panelem. Nie jest to konieczne, ale z pewnością wprowadza porządek i wygodę użytkowania poczty po przeniesieniu.

Kopiowanie skrzynek pomiędzy serwerami

Na początek należy podpiąć docelową domenę, w której mamy pocztę do nowego serwera - na tym etapie jeszcze nie zmieniamy delegacji DNS domeny! Po podpięciu domeny tworzymy takie same konta pocztowe na nowym serwerze, jakie były dostępne na starym. Dla wygody użytkowników warto jest ustawić takie same hasła do nowo utworzonych skrzynek, jakie były na starym serwerze. Po utworzeniu kont pocztowych należy skopiować zawartość skrzynek pomiędzy serwerami. W tym celu można użyć klienta FTP dostęp do poczty poprzez FTP, będą mieć również użytkownicy zwykłych kont hostingowych opartych o cPanel lub DirectAdmin. W przypadku, gdy mamy dostęp do konsoli systemu operacyjnego poprzez SSH katalogi pocztowe można skopiować za pomocą SCP lub konsolowego programu Midnight Commander. Kopiowanie za pomocą SCP Należy zalogować się do konsoli swojego nowego serwera poprzez SSH i skopiować wiadomości ze starego serwera. W naszym przypadku skrzynki kopiowane są z serwera pod kontrolą panelu DirectAdmin do nowego serwera opartego o cPanel.

# scp -r root@migracja.tk:/home/admin/imap/migracja.tk/kontakt/Maildir/ /home/demo15/mail/migracja.tk/kontakt/

Po skopiowaniu wiadomości należy ustawić odpowiedniego właściciela i grupę dla nowo skopiowanych plików, w tym przypadku powinny one należeć do grupy i właściciela demo15. Robimy to poleceniem:

# chown -R demo15:demo15 /home/demo15/mail/migracja.tk/kontakt/

Teraz możemy zmienić domyślne nazwy katalogów w DirectAdminie na te zgodne z cPanelem. Operacja ta jest opcjonalna i można ją wykonać już z poziomu klienta pocztowego.

# cd /home/demo15/mail/migracja.tk/kontakt
# mv .INBOX.Drafts .Drafts
# mv .INBOX.Sent .Sent
# mv .INBOX.Trash .Trash
# mv .INBOX.Spam .Spam

  Kopiowanie za pomocą programu Midnight Commander Logujemy się do konsoli sowjego nowego serwera poprzez SSH i uruchamiany program MC:

# mc

Po uruchomieniu programu nawigujemy w jednym z paneli do katalogu z nową skrzynką. W drugim panelu nawiążemy połączenie ze starym serwerem - Right --> Shell link (albo FTP link w zależności od tego jaki posiadamy rodzaj dostępu do starego serwera). migracja_poczty7 Następnie należy podać dane logowania do konsoli lub FTP starego serwera w postaci {użytkownik}@{nazwa serwera lub domena} migracja_poczty8 Po wpisaniu danych naciskamy Enter i wpisujemy hasło, ponownie naciskamy Enter. Po uzyskaniu połączenia w lewym panelu nawigujemy do właściwego katalogu i zaznaczamy katalogi z pocztą w naszej skrzynce poprzez naciskanie klawisza Insert (zaznaczony katalog/plik jest zostanie podświetlony żółtym kolorem). migracja_poczty9 Wciskamy klawisz F5, który zainicjuje kopiowanie zaznaczonych wcześniej katalogów. migracja_poczty10 Po kopiowaniu należy zmienić właściciela i grupę skopiowanych plików na demo15:demo15 poleceniem

# chown -R demo15:demo15 /home/demo15/mail/migracja.tk/kontakt

Poczta została zmigrowana w ten sposób - teraz należy zmienić delegację DNS domeny w której znajdowały się skrzynki, tak aby poczta była obsługiwana przez nowy serwer.

Przypadek III - dostęp do skrzynek poprzez protokół IMAP (duża liczba skrzynek)

Migracja według sposobu opisanego z punkcie Przypadek I jest bardzo czasochłonna w przypadku dużej ilości skrzynek do migracji. W przypadku, gdy migrowana jest duża liczba kont pocztowych, do których jedyny sposób dostępu jest za pomocą protokółu IMAP to warto rozważyć jedno z narzędzi do automatycznej migracji. Najbardziej popularnym tego typu rozwiązaniem jest imapsync. Kod źródłowy programu jest dostępny tutaj.

Instalacja programu imapsync

1. Pobrane archiwum z kodem źródłowym należy rozpakować poleceniem:

# tar -zxvf imapsync-x.xx.tgz

2. Do instalacji i działania imapsync wymaga instalacji zależności:

(Debian/Ubuntu) # apt-get install make gcc perl
(RHEL/CentOS/Fedora) $ yum install make gcc perl

3. Oprócz zależności wymagana jest instalacja niektórych modułów Perla. Najwygodniej zainstalować je z repozytorium CPAN:

# perl -MCPAN -e "install Mail::IMAPClient"
# perl -MCPAN -e "install Term::ReadKey"
# perl -MCPAN -e "install IO::Socket::SSL"
# perl -MCPAN -e "install Digest::HMAC_MD5"
# perl -MCPAN -e "install URI::Escape"
# perl -MCPAN -e "install File::Copy::Recursive"
# perl -MCPAN -e "install IO::Tee"
# perl -MCPAN -e "install Data::Uniqid"
# perl -MCPAN -e "install Authen::NTLM"

4. Po instalacji zależności wystarczy w katalogu z kodem źródłowym wydać polecenie:

# make install

Program imapsync został zainstalowany w /usr/bin i jest gotowy do użycia.

Migracja skrzynki za pomocą programu imapsync

Imapsync jest programem działającym w konsoli - dane do programu wprowadzane są w formie parametrów. Poniżej znajduje się przykład migracji strarej skrzynki na nową:

# imapsync --host1 mail.migracja.tk --user1 kontakt@migracja.tk --password1 "hasło" --host2 demo15.kylos.pl --user2 kontakt@migracja.tk --password2 "hasło"

Za pomocą tego polecenia można przenieść wiadomości ze skrzynki znajdującej się na starym serwerze (host1) do skrzynki, która została ustworzona na nowym (host2). Jeżeli chcemy przenieść w ten sposób większą ilość skrzynek należy przygotować odpowiednio polenia do migracji według powyższego wzorca i umieścić je w prostym skrypcie bash linia po linii:

#!/bin/bash
# Pierwsza skrzynka
imapsync --host1 mail.migracja.tk --user1 kontakt1@migracja.tk --password1 "hasło" --host2 demo15.kylos.pl --user2 kontakt1@migracja.tk --password2 "hasło"

# Druga skrzynka
imapsync --host1 mail.migracja.tk --user1 kontakt2@migracja.tk --password1 "hasło" --host2 demo15.kylos.pl --user2 kontakt2@migracja.tk --password2 "hasło"

# Trzecia skrzynka
imapsync --host1 mail.migracja.tk --user1 kontakt3@migracja.tk --password1 "hasło" --host2 demo15.kylos.pl --user2 kontakt3@migracja.tk --password2 "hasło"

 

Masowa migracja skrzynek za pomocą programu imapsync

Imapsync znacznie ułatwia migrację poczty dla dużej liczby kont pocztowych. Opisany wcześniej proces można jeszcze bardziej zautomatyzować poprzez przygotowanie pliku CSV z odpowiednimi danymi. Poniżej znajduje się konstrukcja pliku CSV (separatorem musi być średnik ";"): użytkownik na starym serwerze;hasło na starym serwerze;użytkownik bna nowym serwerze;hasło na nowym serwerze kontakt1@migracja.tk;hasło1;kontakt1@migracja.tk;hasło1 kontakt2@migracja.tk;hasło2;kontakt2@migracja.tk;hasło2 kontakt3@migracja.tk;hasło3;kontakt3@migracja.tk;hasło3 Po przygotowaniu odpowiedniego pliku CSV z nazwami użytkowników i hasłami trzeba go zapisać pod nazwą file.txt. Następnie posłużyć się przykładowym skryptem przygotowanym przez twórcę programu:

#!/bin/bash


echo Looping on account credentials found in file.txt
echo

{ while IFS=';' read  u1 p1 u2 p2
    do 
        { echo "$u1" | egrep "^#" ; } > /dev/null && continue # this skip commented lines in file.txt
        echo "==== Syncing user $u1 to user $u2 ===="
        imapsync --host1 imap.side1.org --user1 "$u1" --password1 "$p1" 
                 --host2 imap.side2.org --user2 "$u2" --password2 "$p2"
        
        echo "==== End syncing user $u1 to user $u2 ===="
        echo
    done 
} < file.txt

  Przed uruchomieniem skryptu koniecznie należy zmienić wartość parametrów host1 i host2 w skrypcie na odpowiednio adres starego i nowego serwera. Za pomocą tej metody w szybki sposób można zmigrować kilkadziesiąt kont pocztowych. Po migracji należy zweryfikować czy wszystkie katalogi z pocztą skopiowały się poprawnie, a także czy migracja nie uległa przerwaniu, np. ze względu na błąd połączenia albo osiągnięcie limitu u dostawcy.

Podsumowanie

Migracja poczty to żmudne zadanie, które należy wykonać z dosyć dużą ostrożnością, aby nie utracić ważnych wiadomości swoich i innych osób. Przez migracją warto zaplanować odpowiedni termin, aby w jak najmniejszym stopniu zakłóciła ona działanie skrzynek pocztowych. Wybór najbardziej odpowiedniego terminu zależy od tego, w jakim okresie następuje najbardziej intensywne korzystanie z poczty i wymiana wiadomości. Oprócz skopiowania zawartości skrzynek pocztowych, należy pamiętać o tym, że zmiana delegacji DNS trwa nawet do 24 godzin. W tym czasie wiadomości mogą jeszcze trafiać na stary serwer w zależności od lokalizacji serwera, który wysyła wiadomość na skrzynkę w naszej domenie.

 

Możemy przenieść Twoją pocztę za darmo.

Dla nowych usług hostingowych zakupionych w Kylos.pl wykonujemy migrację stron oraz poczty za darmo. Więcej szczegółów opisaliśmy na www.kylos.pl/migracja/

comments powered by Disqus

Powiązane

photo corner
Różnice w wersjach PHP

W dzisiejszym wpisie chciałbym krótko przybliżyć Wam język PHP, oraz pokazać najważniejsze zmiany, jakie w ostatnich latach zostały w nim wprowadzone.

Czytaj więcej
photo corner
Zen Coding - HTML/CSS z prędkością światła (cz.I)

Wydajność jest dla kodera HTML/CSS sprawą kluczową. Kiedy opanujemy już składnię i podstawowe techniki oraz wdrożymy pierwsze projekty, czas kodowania nabiera podstawowego znaczenia. Z pomocą przychodzą nam rozmaite narzędzia. Dla mnie, najważniejszym jest Zen Coding, które w niezwykły sposób pozwala mi pisać kod kilkakrotnie szybciej.

Czytaj więcej
photo corner
Zen Coding - HTML/CSS z prędkością światła (cz.II)

W pierwszej części artykułu przedstawiłem Zen Coding jako niezwykłe ułatwienie w pracy kodera. Dowiedzieliśmy się, m.in. jak za pomocą jednej linijki pseudokodu napisać cały dokument HTML. Dziś przyjrzyjmy się rozwiązaniom, które przyspieszą naszą pracę z CSS. Zapraszam do lektury!

Czytaj więcej