Ta strona wygląda tak kiepsko, ponieważ korzystasz z przeglądarki nie obsługującej ogólnie przyjętych standardów internetowych. Aby zobaczyą ją w pełnej krasie, zaktualizuj ją do wersji zgodnej z tymi standardami. Trwa to krótko i nie kosztuje nic.

IMAP w stylu PHP

Strona 1 2 3 4
Piotr Lewandowski Michał Paluchowski | opublikowany: 2004-11-09 | średnia ocena: 4.24/5

Istnieje również druga, bardzo słabo opisana w dokumentacji PHP, jednak mimo wszystko łatwiejsza w użyciu funkcja do pobierania nagłówków wiadomości. Jest to mianowicie imap_headers(), która jako parametr przyjmuje jedynie identyfikator połączenia, zwraca natomiast tablicę z danymi z nagłówków wszystkich wiadomości w skrzynce.

O każdej wiadomości w tablicy znajdują się następujące informacje:

FlagiNumer)DataNadawcaTemat(Rozmiar)

Dla pewnej przykładowej wiadomości może to wyglądać tak:

AA oznacza "Answered", czyli na tą wiadomość wysłano już odpowiedź.
123)numer wiadomości w skrzynce to 123
14-Oct-2004odebrana została 14 października 2004 roku
noone@example.comadres nadawcy wiadomości
Example subjecttemat wiadomości
(8415 chars)długość wiadomości to 8415 znaków

Inne flagi jakie mogą posiadać wiadomości to:


Jak najłatwiej wyświetlić tak sformatowaną listę wiadomości? Może tak:

$naglowki = imap_headers($mbox);

if (!$naglowki)
{
print "Blad podczas pobierania naglowkow";
}
else
{
foreach($naglowki as $naglowek)
{
print "$naglowek";
}
}

Ponieważ funkcja imap_headers() pobiera całą listę wiadomości jej wykonanie może potrwać długo i znacznie większa staje się szansa niepowodzenia. W przypadku błędu zwraca ona wartość false, stąd nasz warunek sprawdzający czy pobieranie się udało.

Po wyświetleniu listy wiadomości pozostaje tylko zakończyć połączenie:

imap_close($mbox);

Funkcja zamykająca połączenie oprócz identyfikatora połączenia przyjmuje jeszcze jeden opcjonalny parametr – flagę CL_EXPUNGE. Jeśli ten parametr zostanie ustawiony wszystkie wiadomości oflagowane do usunięcia zostaną usunięte. Wiadomości oflagować można funkcją imap_delete() (nie usuwa ona fizycznie wiadomości a jedynie oznacza jako usunięte). Już po zastosowaniu tej funkcji, a jeszcze przed fizycznym usunięciem wiadomości możemy je przywrócić dzięki funkcji imap_undelete().

Fizycznie usunąć wiadomości do tego przeznaczone można również w każdej chwili wywołując funkcję imap_expunge(). Flaga CL_EXPUNGE jest także opcjonalnym parametrem funkcji imap_open(), którego ustawienie spowoduje skasowanie 'usuniętych' wiadomości w momencie zamykania połączenia.

Następna strona: Wyświetlanie wiadomości
Strona 1 2 3 4  
projekt i multimedia
programowanie
marketing
strategie prowadzenia
infrastruktura
praca