Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Powiadomienia o email na telefon.
Forum PHP.pl > Forum > PHP
Giluś
Cześć, chciałbym zrobić skrypt PHP który sprawdzi zaloguje się na pocztę w serwisie o2.pl (nie reklama), następnie gdy zobaczy, że jest nowa wiadomość to wyślę wiadomość SMS (telefon w plusie wiec będzie to z bramki sms plusa, lub w plusie można wysłać email na telefon jako sms), w treści były temat wiadomości, ewentualnie 10-50 pierwszych znaków wiadomości i od kogo wiadomość.

Jest to mi potrzebne gdyż, nie chce ciągle wchodzić na pocztę e-mail, logować się itp, a tak to bym miał automat smile.gif)

Chciałbym się dowiedzieć jak się zalogować na pocztę (curl), a następnie jak sprawdzić czy jest nowa wiadomość (tego nie wiem), później to już wiem, wysyłanie wiadomości na telefon to jest chwilka kodu, treść wiadomości też już będzie wiadomo ( jak się zaloguje i sprawdzi nowe wiadomości to się zmienne pobierze )

Podsumowując, jak się zalogować i jak sprawdzić czy jest nowa wiadomość questionmark.gif


Z góry dziękuje za każdą odpowiedz i pozdrawiam smile.gif)
cycofiasz
Użyj protokołu POP3 bo do tego on jest. Są gotowe klasy php do obsługi pop3 więc raczej problemu nie powinno to sprawiać.
Fifi209
Cytat(Giluś @ 14.07.2011, 11:19:11 ) *
Podsumowując, jak się zalogować i jak sprawdzić czy jest nowa wiadomość questionmark.gif

Zalogujesz się poprzez CURL, zaopatrz się w FF z dodatkiem Live HTTP Headers, abyś wiedział jakie dane zostają przesłane w formularzu i ew. jakie nagłówki lecą do serwera. Przerób to wszystko pod curl i jesteś zalogowany.

Jak sprawdzić czy jest nowa wiadomość - zwykle jest ona pogrubiona czy to tytuł czy cały wiersz, sugerowałbym się właśnie tym.
karolrynio
Ale mimo wszystko łatwiej będzie użyć:

http://php.net/manual/en/book.imap.php

Tam będziesz miał wszystkie informacje o mailach.
Fifi209
Cytat(karolrynio @ 15.07.2011, 11:46:44 ) *
Ale mimo wszystko łatwiej będzie użyć:

Owszem o ile poczta udostępnia IMAP jak np. GMAIL, bo z tego co wiem nie wszystkie udostępniają.
karolrynio
Cytat(Fifi209 @ 15.07.2011, 12:03:29 ) *
Owszem o ile poczta udostępnia IMAP jak np. GMAIL, bo z tego co wiem nie wszystkie udostępniają.


http://www.php.net/manual/en/function.imap-open.php

Cytat
This function can also be used to open streams to POP3 and NNTP servers, but some functions and features are only available on IMAP servers.

Fifi209
No i masz wyraźnie napisane w tym co zacytowałeś, że niektóre funkcje potrzebują IMAP. smile.gif I to miałem na myśli, może zbyt skrótowo napisałem.
karolrynio
Z tego co napisałeś moim zdaniem wynikało, że tylko jeśli masz imap możesz skorzystać z tych funkcji.
W każdym razie rozwiązanie wydaje się prostsze niż zabawa z CURL, pobieraniem informacji ze strony itp.
Bo wystarczy zalogować się, pobrać listę wiadomości i zrobić z nią co chcemy.
Giluś
Użyłem iMap i mam problem...
Loguje się na pocztę wszystko ładnie super, pokazuje wiadomości itp, ale gdy chce sprawdzić czy jest nowa wiadomość to zawsze wyświetla ze jest nowa wiadomość... nawet gdy jej nie ma.. taki kod mam:

  1. <?php
  2. if($poczta = imap_open("{poczta.o2.pl:110/pop3}INBOX", 'mój_login', 'moje_haslo'))
  3. {
  4. echo "<span style='color:green'>Polaczenie nawiazane!<br /></span>";
  5. if(imap_num_recent($poczta) > 0)
  6. {
  7. echo "<span style='color:green'>Nowe wiadomosci!<br /></span>";
  8. }
  9. else
  10. {
  11. echo "<span style='color:red'>Brak nowych wiadomosci!<br /></span>";
  12. }
  13. }
  14. else
  15. {
  16. echo "<span style='color:red'>Nie mozna polaczyc!<br /></span>";
  17. }
  18. ?>

próbowałem też tak:

  1. <?php
  2. if($poczta = imap_open("{poczta.o2.pl:110/pop3}INBOX", 'mój_login', 'moje_haslo'))
  3. {
  4. echo "<span style='color:green'>Polaczenie nawiazane!<br /></span>";
  5. $check=imap_mailboxmsginfo($poczta);
  6. if($check->Recent > 0)
  7. {
  8. echo "<span style='color:green'>Nowe wiadomosci!<br /></span>";
  9. }
  10. else
  11. {
  12. echo "<span style='color:red'>Brak nowych wiadomosci!<br /></span>";
  13. }
  14. // imap_close($poczta);
  15. }
  16. else
  17. {
  18. echo "<span style='color:red'>Nie mozna polaczyc!<br /></span>";
  19. }
  20. ?>
  21.  



Może ktoś wie czemu tak ?wink.gif


Edit.: Już wiem, Recent pokazuje ile jest wszystkich wiadomości, a nie tylko tych nie przeczytanych, wiec to tak nie wyjdzie
cycofiasz
Według moich informacji, łącząc się przez protokół POP3 nie ma możliwości otrzymania informacji o ilości nowych wiadomości. Jedynie IMAP umożliwia takie coś.
Należałoby więc albo usuwać wszystkie wiadomości przy każdym sprawdzeniu (można je wcześniej zapisać gdzieś na serwerze lub wysłać na inny email) lub stworzyć na serwerze bazę ID emaili i porównywać ją z ID maili na skrzynce.
Giluś
Czyli mówisz, że trzeba by było zrobić coś takiego:
CRON np.: co 15minut i żeby sprawdzał w bazie mysql jaki jest ID ostatniej wiadomości jeśli jest taki sam to nic nie robi, jeśli większy to zmienia w mysql na ten większy, a później wysyła sms tak ?

A przez protokół IMAP ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.