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

Wyświetlenie listy wiadomości

Zanim przystąpimy do pobierania i wyświetlania listy wiadomości na koncie musimy sprawdzić czy skrzynka w ogóle jakieś wiadomości zawiera.

if (imap_num_msg($mbox) == 0)
{
echo 'Brak wiadomosci';
}
else
{
echo 'Ilość wiadomości: ' . imap_num_msq($mbox);
}

Jak łatwo się domyślić funkcja imap_num_msg() zwraca nam ilość wiadomości znajdujących się w otwartej skrzynce. Zakładając, że jakieś wiadomości są na naszym koncie możemy je teraz wyświetlić:

echo '<table>
<tr>
<th>Lp</th>
<th>Data nadania</th>
<th>Nadawca</th>
<th>Temat</th>
</tr>';

for ($i = 1; $i <= imap_num_msg($mbox); $i++)
{
$naglowek = imap_headerinfo($mbox, $i, 80, 80);

echo '<tr>
<td>' . $i . '</td>
<td>' . gmdate('Y-m-d H:i:s', $naglowek->udate) . '</td>
<td><a href="mailto:' . $naglowek->from[0]->mailbox . '@' . $naglowek->from[0]->host . '">' . $naglowek->from[0]->mailbox . '@' . $naglowek->from[0]->host . '</a></td>
<td>' . $naglowek->fetchsubject . '</a></td>
</tr>';
}

echo '</table>';

Kod stał się trochę niewyraźny poprzez dodanie znaczników HTML, ale taki jest naturalny sposób wyświetlania listy wiadomości – w formie tabeli. Tworzymy pętlę o ilości powtórzeń równej liczbie wiadomości zwróconych funkcją imap_num_msg().

Dla każdej wiadomości wywołujemy funkcję imap_headerinfo(), która zwraca obiekt zawierający informacje z nagłówka wiadomości. Pierwszy jej parametrem jest zmienna przechowująca otwarte połączenie z serwerem, drugim numer wiadomości, której nagłówki chcemy pobrać. Dwa kolejne parametry są opcjonalne – ustalają one ograniczenia długości pól "od" oraz "temat".

Cały obiekt jest dosyć bogatą strukturą, której pełną zawartość wyjaśnia dokumentacja PHP. Dla naszych potrzeb wykorzystaliśmy jedynie kilka wartości:

udatezwraca datę i czas otrzymania wiadomości w formacie Unix, stąd potrzeba wykorzystania funkcji gmdate(), aby dane te przedstawić w czytelniejszej formie
from[]ta wartość przechowuje tablicę informacji o nadawcy wiadomości, osobno przechowując nazwę skrzynki (mailbox), a więc to co znajduje się przed znakiem @, oraz osobno adres serwera, a więc część adresu po @.
fetchsubjectzwraca temat wiadomości, opcjonalnie skrócony do ilości znaków podanej jako parametr funkcji imap_headerinfo().

Następna strona: Inny sposób wyświetlania
Strona 1 2 3 4  
projekt i multimedia
programowanie
marketing
strategie prowadzenia
infrastruktura
praca