sobota, 1 września 2007

Import archiwum pocztowego do Gmaila

W Google Mail (Gmail) jakiś czas temu dodano dostęp do innych kont pocztowych przez protokół POP3. Jego brak był jedyną rzeczą, która trzymała mnie jeszcze przy klasycznych czytnikach poczty jak Outlook, Outlook Express czy Mozilla Thunderbird. Pojawił się jednak kolejny problem, a mianowicie brak możliwości eleganckiego importu archiwum swoich wiadomości email. Cóż z tego, że mam świetną skrzynkę pocztową i wszystkie maile pod ręką w gmail.com, skoro tracę dostęp do budowanego przez wiele lat archiwum korespondencji? Nie było wyjścia, zacząłem więc googlać.

Szybko okazało się, że import wiadomości nie jest zadaniem trywialnym. Jest co prawda dostępnych kilka narzędzi takich jak Gmail Loader, ale niestety jakość takiego importu pozostawia wiele do życzenia:
  • zaimportowane wiadomości są po prostu przesłane na konto Gmail, więc ich data nadesłania jest równa dacie importu; skutkuje to strasznym bałaganem w skrzynce Gmail, jako że maile tam są segregowane właśnie po dacie (można co prawda dotrzeć do oryginalnej daty, gdyż jest ona dostępna po otwarciu konkretnego maila, ale jakież to nieeleganckie...)
  • występują problemy z migracją poczty z Outlooka; zaleca się najpierw import do Outlook Expressa lub Thunderbirda (sic!)

Po dłuższych poszukiwaniach, w końcu natrafiłem na metodę, która działa. Są jednakowoż minusy - jest dosyć czasochłonna i wymaga nieco 'techniki' od użytkownika. Natrafiłem na jej opis w komentarzach dotyczących użycia Gmail Loadera na forum lifehacker.com. Komentujący o nicku Tomasso opisuje tam metodę z wykorzystaniem serwera IMAP. Podobne rozwiązanie opisane zostało - jak dla mnie dość chaotycznie - na zoliblog.com.

Przejdźmy może do meritum - sprawdziłem migrację poczty z zastosowaniem lokalnego serwera pocztowego IMAP zarówno dla Thunderbirda jak i Outlooka i działa wyśmienicie. Poniżej zamieszczam opis jak bezboleśnie tego dokonać.

Jak to działa?
Gmail pozwala na ściąganie poczty z dowolnego serwera pocztowego przez protokół POP3. Zatem gdyby mieć do dyspozycji serwer pocztowy obsługujący POP3 i móc umieścić na nim emaile w niezmienionej formie, Gmail mógłby je pobrać - także niezmienione - tak jak z każdego innego serwera POP3. Możliwość taką daje inny protokół - IMAP. Można połączyć się czytnikiem poczty z kontem IMAP na serwerze pocztowym, umieścić tam wybrane emaile, a następnie pobrać je Gmailem przez POP3. Proste?

Jak to zrobić?
1. Założenia:
  • dysponujemy kontem pocztowym Gmail (nie ma znaczenia, czy zwykłe mail.google.com, czy hostingowe Google Apps)
  • nasz czytnik poczty używany dotychczas, w którym mamy archiwum maili, obsługuje protokoły POP3 oraz IMAP (np. Outlook, Outlook Express, Thunderbird)
  • archiwum mailowe oraz czytnik są na tym samym komputerze, na którym będziemy instalować nasz serwer pocztowy (tak będzie po prostu nieco wygodniej)
  • używamy systemu Windows XP (oczywiście nie jest to ograniczenie metody; po prostu nie testowałem tej procedury pod innym systemem)
  • nasz komputer lokalny ma stały dostęp do internetu z publicznym adresem IP lub - w przypadku połączenia sieci prywatnej przez router rozdzielający łącze internetowe - mamy dostęp administratorski do routera (trzeba będzie przekierować port na routerze)

2. Potrzebne narzędzia:
  • komputer lokalny na którym postawimy serwer pocztowy POP3+IMAP (najlepiej ten sam, na którym mamy archiwum pocztowe i zainstalowany dotychczasowy czytnik poczty)
  • oprogramowanie - serwer pocztowy obsługujący POP3 i IMAP (polecam darmowy Mercury MTS for Win32 ja używałem wersji 4.52 pobierz).

3. Instalacja serwera pocztowego Mercury MTS dla Windows
  • ściągamy instalkę serwera - link w punkcie 2.
  • uruchamiamy instalator i podczas instalacji wybieramy opcje:
- New Installation,
- następnie No NetWare Support,
- podajemy lokalizację - sugeruję zaakceptować domyślną C:\Merkury,
- potem wybieramy No Pegasus Mail integration,
- OK dla lokalizacji kont email,
- Protocol Modules - wybieramy MercuryP (POP3 Server Module) oraz MercuryI (IMAP4rev1 server)
- install No SMTP client
- zostawiamy puste miejsce w polu nazwy domeny, wpisujemy nazwę lokalnego użytkownika (Może zostać domyślna nazwa Admin)
- opcja None w Relay Control - co prawda niezalecana, ale ten serwer będzie tymczasowy tylko na czas importu emaili do Gmaila, a następnie zostanie wyłączony, więc nie ma sensu przejmować się przesadnie zabezpieczeniami przeciwspammerskimi
- lokalizacja Queue - może zostać domyślna
- no i w końcu przycisk rozpoczynający instalację serwera
- wybieramy Done, jako nie ma sensu instalować filtra antyspamowego
- upragniony Exit :)

Serwer pocztowy został zainstalowany. Uruchamiamy go korzystając oczywiście ze skrótu "Mercury for Win32".

Teraz konfiguracja serwera.
Wchodzimy w opcję Configuration -> Mercury POP3 Server. Ja ustawiłem go tak:



Jeśli chodzi o konfigurację IMAP4 (Configuration -> Mercury IMAP4 Server), to z tego co pamiętam nic tam nie zmieniałem.

Teraz użytkownicy naszego serwera. Wystarczy stworzyć jedno konto. Wchodzimy w Configuration-> Manage local users i klikamy Add.
Wpisujemy:
username - np. importer
personal name - cokolwiek
mail password - dowolne hasło
APOP secret - to samo hasło co wyżej
można zaznaczyć oba boxy - administrator i copy default mail
Następnie klikamy OK.

Jeżeli jesteśmy podłączeni tym komputerem bezpośrednio do internetu, nie zaś za pośrednictwem routera, można rozpocząć dalsze czynności (punkt 5).

4. Jeśli natomiast nasz komputer jest w sieci prywatnej (IP z zakresu 192.168.*.* lub 10.*.*.*), musimy skonfigurować router odpowiedzialny za połączenie z internetem tak, aby port 110 był przekierowywany na nasz komputer z zainstalowanym serwerem poczty. Odsyłam tutaj do dokumentacji routera, opiszę jedynie pobieżnie jak sprawa wygląda w przypadku mojego routera D-Link DI-524UP. Konfiguracja odbywa się oczywiście przez panel administracyjny routera na stronie www. Zakładamy, że ip mojego komputera z serwerem pocztowym to 192.168.66.66. Port serwera POP3 ma numer 110, a jako port zewnętrzny wykorzystamy port 9991:



Ok, port otwarty, zatem można przystąpić do kopiowania archiwalnych maili.

5. Serwer pocztowy działa, ale nie mamy jeszcze na nim żadnej poczty. Otwieramy nasz czytnik poczty - niech to będzie Mozilla Thunderbird:
  • wchodzimy w Narzędzia->Konfiguracja kont i klikamy Dodaj konto, konto pocztowe
  • wpisujemy imię (np. importer) oraz adres email (importer@192.168.66.66) - musi to być konto utworzone na naszym serwerze wraz z poprawnym adresem IP serwera
  • wybieramy opcję Serwer IMAP, wpisujemy ip serwera (192.168.66.66)
  • podajemy nazwę użytkownika (importer)
  • podajemy dowolną nazwę jako nazwę konta (np. importer@192.168.66.66)
Konto utworzone. Można wejść w folder Odebrane konta importer@192.168.66.66 i zobaczyć, że nic tam nie ma :). Teraz wchodzimy do folderu z archiwalnymi wiadomościami i wybieramy emaile, które chcemy przesłać na konto Gmail.
Warto podzielić maile przynajmniej na Otrzymane i Wysłane, ale Gmail pozwala na dodawanie różnorodnych etykiet, których można używać zamiast segregować maile w folderach (tak jak to ma miejsce w klasycznych czytnikach poczty). Można też na przykład dodawać etykiety związane z kontami pocztowymi, z których poczta została ściągnięta - jeśli używamy konta Gmail jako czytnika innych kont pocztowych.
Zatem zaznaczamy np emaile z folderu Otrzymane naszej archiwalnej skrzynki, oznaczamy je jako nieprzeczytane (to ważne! - wygląda na to że tylko nieprzeczytane maile zostaną zaimportowane) i kopiujemy do folderu Otrzymane nowo założonej skrzynki na naszym serwerze importer@192.168.66.66. I gotowe. Teraz tylko skonfigurować samego Gmaila.

6. Logujemy się na nasze konto Gmailowe i klikamy w Ustawienia->zakładka Konta. W sekcji 'Pobieraj wiadomości z innych kont pocztowych' wybieramy opcję 'Dodaj kolejne konto pocztowe'. Podajemy nazwę konta pocztowego (importer@192.168.66.66).
Aby dokonać konfiguracji, musimy znać publiczny adres IP naszej sieci. Jeśli nasz komputer sam ma już adres publiczny, to nie ma problemu. Jeśli łączymy się przez router - należy sprawdzić w ustawieniach routera jakie IP zostało mu przypisane. W moim routerze można to sprawdzić na stronie panelu administracyjnego routera, w zakładce 'Status', sekcji 'Device Info', WAN - IP Address. Ten adres podajemy w polu 'Serwer POP'. Pozostałe pola wypełniamy zgodnie z ustawieniami - w moim przykładzie wyglądałoby to tak:



Oczywiście klikamy 'Dodaj konto'. Jeśli wystąpią problemy, zostanie wyświetlony na czerwono stosowny komunikat o błędzie. Typowe dwa to:
  • Serwer podał informację o błędzie: "Connection timed out" - problem z połączeniem się z serwerem; należy sprawdzić, czy IP serwera POP i port są zgodne z ustawieniami na routerze oraz czy serwer Mercury jest włączony
  • Dla podanych nazwy i hasła użytkownika serwer odmówił dostępu przez protokół POP3. Serwer podał informację o błędzie: "Username or password is invalid or incorrect." - oczywiście złe hasło lub nazwa użytkownika; sprawdź czy wszystko dobrze wpisano, a następnie konfigurację użytkownika serwera Mercury
Jeśli wszystko pójdzie ok, na następnym ekranie wybieramy 'Nie'.

W tym momencie konfiguracja jest zakończona. Gmail zacznie pobierać emaile z naszego serwera przez protokół POP3. Możemy obserwować jak maile pojawiają się stopniowo. Operacja taka może potrwać nieco czasu - około 1-2h dla 300 maili. Warto zwrócić uwagę, że ilość maili przekopiowanych na serwer może być większa od wyświetlanej przez Gmail, jako że Gmail grupuje wątki maili po tematach i zlicza właśnie wątki, a nie pojedyncze maile.
Jeśli stwierdzimy, że wszystkie maile zostały pobrane, można zmienić etykietę w ustawieniach naszego 'importowego' konta w Gmail korzystając z opcji 'edytuj' i zmienić etykietkę jaka ma być nadawana importowanym mailom, po czym można zacząć import kolejnej paczki - patrz pkt. 5.

Voila!

Powyższy przykład dotyczy czytnika Mozilla Thunderbird, ale jeśli chodzi o konfigurację innych popularnych czytników poczty, to bardzo łatwo znaleźć dokładny opis na google (np. tutaj dla Outlooka), więc nie będę tego powielał.

1 komentarz:

Mirek Szmajda pisze...

Gmail jest chyba raczej dla tych, co musza uzywac poczty z roznych komputerow. Czy jest jeszcze jakis powod aby przesiadac sie z inny aplikacji lokalnych na tę webową? Tym bardziej zdaje sie, ze gmail wyswietla reklamy.