Wszyscy korzystamy z poczty elektronicznej. Ci z nas, którzy bardziej zaangażowani są w działalność w sieci posiadają zazwyczaj wiele kont, z których pocztę pobierają poprzez protokół POP za pomocą programów, często z rozbudowanymi funkcjami filtrującymi i porządkującymi pocztę. Wiadomości kopiowane są z serwera na nasz komputer, tym samym ich odczyt odbywa się całkowicie lokalnie. Co zrobić jednak, kiedy dostęp do tej samej poczty chcemy mieć w wielu miejscach? Być może na komputerze w domu, w pracy i na laptopie? Nie kasować listów na serwerze i ściągnąć na każdym z nich osobno?
o autorach
Piotr Lewandowski Jelenia Góra jest miastem w którym żyje, studiuje i pracuje. Wszystko co robi ma związek z informatyką. Tworzenie portali zakładowych jak też wykonywanie stron internetowych. Swoją przyszłość wiąże z informatyką, Internetem, projektowaniem dużych witryn opartych o bazy danych itp. - a przynajmniej na dzień dzisiejszy takie ma ambicje.
Kiedy ma dość wszystkiego ucieka na dwóch kółkach poza miasto. Wyżywa się na trasach rowerowych przy okazji prowadząc dokumentację fotograficzną - aparat jest drugą niezbędną rzeczą, która prawie zawsze mu towarzyszy.
Łącznie napisał dla nas 1 artykułów.
Michał Paluchowski CEO, właściciel i redaktor vortalu NetHut.pl. Jego ulubionym tygodnikiem jest Wprost, a na co dzień z przyjemnością czyta Gazetę Wyborczą. Jest zakochany w muzyce i komputerach, czasem nieco ekscentryczny. Zawsze otwarty na nowe znajomości.
Łącznie napisał dla nas 45 artykułów.tych samych autorów
- Własne RSS [MP]
- Rodzina XSL [MP]
- Wprowadzenie do XML [MP]
- Rozszerzenia XSSI [MP]
- Dynamiczne generowanie grafiki w PHP [MP]
zobacz również
Istnieje inne rozwiązanie – korzystanie z poczty bezpośrednio na serwerze dzięki możliwościom jakie daje nam protokół IMAP. Rozwinięcie tego skrótu - Internet Message Access Protocol – daje też dobry obraz jego faktycznych możliwości. Nie jest on jedynie protokołem umożliwiającym ściąganie poczty. Kluczowe w tym przypadku słowo 'Access' oznacza możliwość korzystania z poczty znajdującej się na zdalnym serwerze tak jakby była ona przechowywana lokalnie.
W tym artykule pokażę jak napisać w PHP pewne podstawowe moduły interfejsu do zarządzania pocztą poprzez protokół IMAP. Zanim zaczniemy warto jednak sprawdzić, czy dostęp do twojego konta jest w ogóle możliwy za pomocą IMAP – w Polsce nie jest to często oferowana funkcja. Głównym czynnikiem ograniczającym dostęp do IMAP jest wymóg posiadania dobrego połączenia z Internetem, naturalnie za pomocą stałego łącza, co jeszcze do niedawna nie było u nas łatwe do osiągnięcia. Na szczęście teraz DIAL-UP przechodzi do historii.
PHP w akcji
PHP posiada bardzo szeroką gamę funkcji służących korzystaniu z protokołu IMAP. Ich przydatność nie jest jednak ograniczona wyłącznie do samego IMAP. Obsługują one równocześnie protokoły POP3 oraz NNTP a także dają możliwość korzystania z lokalnych skrzynek pocztowych.
Wszystkie funkcje IMAP są powiązane z odpowiednim rozszerzeniem PHP, które nie jest domyślnie instalowane. W systemie Windows konieczne będzie znalezienie w pliku php.ini linijki:
;extension=php_imap.dll
Należy usunąć na jej początku średnik oraz uruchomić ponownie oprogramowanie serwera, pod którym PHP u nas pracuje.
Linux z kolei będzie wymagał od nas rekompilacji PHP z opcją:
--with-imap=/sciezka/do/imap
Połączenie
Aby w jakikolwiek sposób korzystać z zasobów konta IMAP musimy rozpocząć od połączenia z serwerem, które otwiera nam funkcja imap_open(). Jej składnia wygląda następująco:
$mbox = imap_open("{mail.example.com:143}INBOX", "user", "haslo");Gdzie mail.example.org jest przykładowym adresem serwera pocztowego, port 143 jest domyślny dla protokołu IMAP, INBOX domyślną nazwą skrzynki pocztowej a user i haslo danymi użytkownika konta, koniecznymi do zalogowania.
Ze względu na dużą wagę bezpieczeństwa komunikacji w ostatnich czasach możemy chcieć kontaktować się z serwerem za pomocą szyfrowanego połączenia. W tym przypadku otwarcie połączenia będzie wyglądało następująco:
$mbox = imap_open("{mail.example.com:993/ssl}INBOX", "user", "haslo");Zmienił się port pod jakim będziemy się łączyć z serwerem, ale również zaznaczyliśmy potrzebę wywołania funkcji SSL poprzez dodanie po nazwie serwera opcji /ssl. Takich możliwych do wykorzystania opcji jest więcej, pełną ich listę można znaleźć w dokumentacji php. Na nasze potrzeby w obecnej chwili nie musimy znać ich reszty.