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.
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ż
O każdej wiadomości w tablicy znajdują się następujące informacje:
| Flagi | Numer) | Data | Nadawca | Temat | (Rozmiar) |
Dla pewnej przykładowej wiadomości może to wyglądać tak:
| A | A oznacza "Answered", czyli na tą wiadomość wysłano już odpowiedź. |
| 123) | numer wiadomości w skrzynce to 123 |
| 14-Oct-2004 | odebrana została 14 października 2004 roku |
| noone@example.com | adres nadawcy wiadomości |
| Example subject | temat wiadomości |
| (8415 chars) | długość wiadomości to 8415 znaków |
Inne flagi jakie mogą posiadać wiadomości to:
- N – New - nowa
- R – Recent - niedawna
- U – Unread - nieprzeczytana
- F – Flagged - oflagowana
- D – Deleted - usunięta
- X – Draft – kopia robocza
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.