Naszym celem jest dziś za pomocą kilku linijek kodu PHP połączyć się z serwerem poczty przychodzącej POP3/IMAP i wyświetlanie na naszej stronie nagłówków wiadomości e-mail.
Sprawa nie jest taka trudna na jaką by wyglądała. Otóż PHP daje prawie gotowe rozwiązanie – funkcje IMAP.
Pierwsze co musimy wykonać to nawiązać strumień połączenia z serwerem poczty przychodzącej. Służy do tego funkcja imap_open(). Na początek trochę tłumaczeń z dokumentacji.
<?php resource <strong>imap_open</strong> ( string <tt>$mailbox</tt> , string <tt>$username</tt> , string <tt>$password</tt> [, int <tt>$options</tt> = NIL [, int <tt>$n_retries</tt> = 0 [, array <tt>$params</tt> = <strong><tt>NULL</tt></strong> ]]] ) ?>
Funkcji podajemy domyślnie 3 argumenty lecz są dodatkowe parametry których nie będziemy na razie omawiać. Pierwszy argument mailbox.
„{” remote_system_name [„:” port] [flags] „}” [mailbox_name]
, gdzie
remote_system_name – nazwa domeny lub adres IP serwera poczty przychodzą
port – numer portu, jest różny w zależność czy serwer to POP3 czy IMAP oraz czy serwer używa SSL
flags – dodatkowe flagi opis poniżej
mailbox_name – zdalny folder skrzynki pocztowej, domyślnie INBOX
Flagi
/service=service | usługi dostępu do skrzynki pocztowej, domyślnie imap |
/user=user | zdalny logowanie użytkownika |
/authuser=user | zdalne logowanie użytkownika, którego hasło jest w użyciu |
/anonymous | zdalnego logowanie jako użytkownik anonimowy |
/debug | record protocol telemetry in application’s debug log |
/secure | do not transmit a plaintext password over the network |
/imap, /imap2, /imap2bis, /imap4, /imap4rev1 | odpowiednik /service=imap |
/pop3 | odpowiednik /service=pop3 |
/nntp | odpowiednik /service=nntp |
/norsh | do not use rsh or ssh to establish a preauthenticated IMAP session |
/ssl | logowanie w trybie bezpiecznym |
/validate-cert | sprawdzanie czy serwer posiada certyfikat, domyślnie właczone |
/novalidate-cert | nie sprawdzanie czy serwer posiada certyfikat |
/tls | force use of start-TLS to encrypt the session, and reject connection to servers that do not support it |
/notls | do not do start-TLS to encrypt the session, even with servers that support it |
/readonly | request read-only mailbox open (IMAP only; ignored on NNTP, and an error with SMTP and POP3) |
Teraz abym mógł się połączyć ze swoim serwerem wpiszę odpowiednio wypełnioną funkcje:
<?php $mbox = imap_open ("{mail.sebcza.pl:110/pop3/novalidate-cert}INBOX", "test@sebcza.pl", "tajnehaslo"); ?>
mail.sebcza.pl jest domena mojego serwera poczty i wykorzystuje port 110. Dodatkowe flagi to /pop3 ponieważ korzystam z serwera pop3 oraz /novalidate-cert ponieważ ten serwer chyba nie posiada certyfikatów.. Kolejne argumenty to kolejno login poczty oraz hasło.

Software Developer | .NET and Angular enthusiast | 3D Printing fanatic