Widziałem pełno skryptów do wysyłania poczty, ale nie wiem czy istnieje mozliwość odbierania poczty za pomocą PHP??
Dziekuje z góry za odpowiedz.
[php] Odbieranie poczty
Re: [php] Odbieranie poczty
Problem jest dość złożony więc nie będę podawał gotowego kodu, pozostawiam Ci to do implementacji. Odbieranie poczny jest realizowane za pomocą protokołu POP3 i jak się zapewne domyślasz, odebranie poczty wymaga znajomości owego protokołu. Osobiście polecam skorzysanie z jakiegokolwiej sniffera i podglądnięcie, co wysyła np. Outlook Express. Jeżeli jednak nie masz możliwości użycia sniffera podam Ci tutaj moje obserwacje:
+OK
USER {...}
+OK user ok
PASS {...}
+OK you have (n) messages ((n) octets)
STAT
+OK (n) (n)
RETR (n)
{...}
DELE (n)
+OK
QUIT
+OK bye bye
To jest w uproszczeniu protokół POP3. Serwer odpowiada poprzez: +OK lub -ERR i dlatego wystarczy sprawdzać pierwszy bajt odpowiedzi. Po zgłoszeniu się serwera wysyłana jest nazwa użytkownika, następnie (po potwierdzeniu), hasło. Jeżeli dane zostaną przyjęte, serwer odpowiada przez +OK. Wtedy, wysyłasz polecenie STAT. Serwer zwraca najpierw ilość wiadomości, następnie ilość oktetów. (chyba w takiej kolejności, nie pamiętam). Wtedy wysyłasz polecenie RETR podając jako argument numer wiadomości, serwer zwraca wiadomości (zakończone kropką w pustej linii), które Ty usuwasz. UWAGA:wiadomości są fizycznie usuwane dopiero po zakończeniu sesji, więc za każdym razem pytasz się o następną wiadmość:
RETR 1
{...}
DELE 1
{...}
RETR 2
{...}
itd.
Po załatwieniu wszystkich wiadomości wysyłasz polecenie QUIT, serwer się żegna i zrywa połączenie.
Dobrze, to był wstęp.... Teraz do PHP. Po pierwsze, przejrzyj dokumentację PHP oznaczoną jako Socket functions. Ja podam tylko ważniejsze funkcje, które będą Ci potrzebne:
- socket_create
- socket_connect
- socket_read
- socket_write
- socket_close
Mam nadzieję, że niczego nie pominąłem. Jeżeli nic nie mówią Ci te nazwy, polecam lekturę solidnego tomu o protokołach TCP/IP. Mam nadzieję, że moja odpowiedź rozjaśni Ci kwestię odbierania poczty.
-----------
PS.
Nie zapomnij wbudować w program obsługi błędów!
+OK
USER {...}
+OK user ok
PASS {...}
+OK you have (n) messages ((n) octets)
STAT
+OK (n) (n)
RETR (n)
{...}
DELE (n)
+OK
QUIT
+OK bye bye
To jest w uproszczeniu protokół POP3. Serwer odpowiada poprzez: +OK lub -ERR i dlatego wystarczy sprawdzać pierwszy bajt odpowiedzi. Po zgłoszeniu się serwera wysyłana jest nazwa użytkownika, następnie (po potwierdzeniu), hasło. Jeżeli dane zostaną przyjęte, serwer odpowiada przez +OK. Wtedy, wysyłasz polecenie STAT. Serwer zwraca najpierw ilość wiadomości, następnie ilość oktetów. (chyba w takiej kolejności, nie pamiętam). Wtedy wysyłasz polecenie RETR podając jako argument numer wiadomości, serwer zwraca wiadomości (zakończone kropką w pustej linii), które Ty usuwasz. UWAGA:wiadomości są fizycznie usuwane dopiero po zakończeniu sesji, więc za każdym razem pytasz się o następną wiadmość:
RETR 1
{...}
DELE 1
{...}
RETR 2
{...}
itd.
Po załatwieniu wszystkich wiadomości wysyłasz polecenie QUIT, serwer się żegna i zrywa połączenie.
Dobrze, to był wstęp.... Teraz do PHP. Po pierwsze, przejrzyj dokumentację PHP oznaczoną jako Socket functions. Ja podam tylko ważniejsze funkcje, które będą Ci potrzebne:
- socket_create
- socket_connect
- socket_read
- socket_write
- socket_close
Mam nadzieję, że niczego nie pominąłem. Jeżeli nic nie mówią Ci te nazwy, polecam lekturę solidnego tomu o protokołach TCP/IP. Mam nadzieję, że moja odpowiedź rozjaśni Ci kwestię odbierania poczty.
-----------
PS.
Nie zapomnij wbudować w program obsługi błędów!
Re: [php] Odbieranie poczty
http://webcity.php.pl/webcity/
poszukaj w artykułach, tam jest m.in. tutorial jak zrobić klienta poczty w php.
poszukaj w artykułach, tam jest m.in. tutorial jak zrobić klienta poczty w php.
-
Krzysztof Aszkiełowicz
- Zaczyna działać

- Posty: 458
- Rejestracja: pn maja 26, 2003 9:29 pm
- Lokalizacja: Warszawa
- Kontakt:
Re: [php] Odbieranie poczty
Niekoniecznie POP3. PHP posiada funkcje obsługi poczty. Obsługuje taki protokół jak np. IMAP i posiada funkcje do odbioru poczty.wixor pisze:Problem jest dość złożony więc nie będę podawał gotowego kodu, pozostawiam Ci to do implementacji. Odbieranie poczny jest realizowane za pomocą protokołu POP3 i jak się zapewne domyślasz, odebranie poczty wymaga znajomości owego protokołu.
Musisz poszukać w manualu, bo nie przeglądałem dokładnie tych funkcji.
Re: [php] Odbieranie poczty
IMAP za pomocą PHP:
http://webcity.php.pl/webcity/artykuly.php/t/49
http://webcity.php.pl/webcity/artykuly.php/t/49
