Cześć. Korzystam z pakietu laravel imap aby pobrać wiadomości z skrzynki pocztowej do systemu.
Samo pobieranie działa prawidłowo, wiadomości zapisuję w bazie jednak nie wiem jak pobierać nowe wiadomości których jeszcze nie ma w bazie tak aby nie pobierać wszystkich wiadomości za każdym razem.
Chcę uruchamiać CRON co kilka minut tak aby sprawdzał i pobierał tylko nowe wiadomości.
Jak to osiągnąć
Wczytanie tylko nowych maili ze skrzynki pocztowej
- Rejestracja: dni
- Ostatnio: dni
- Postów: 362
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1866
Może pobierz nagłówki wiadomości i sprawdź które masz w bazie.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 362
Tak właśnie myślałem ale zastanawiam się czy nie ma czegoś bardziej wydajnego niż sprawdzanie za każdym razem. Dodatkowo trzeba cały nagłówek czy można jakieś ID?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 362
ja myślałem żeby mieć nagłówki zapisane w bazie i później zrobić in_array() jednak nie jestem przekonany co do wydajności zwłaszcza jeśli nie będzie to 10 tylko około 3000 wiadomości których przybywa
- Rejestracja: dni
- Ostatnio: dni
- Postów: 449
Jesli uzywasz imap to nic nie pobierasz zadnehj poczty ani zalacznikow
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1866
@chomikowski: To pewnie zależy od klienta pocztowego, ale w niektórych lista wiadomości jest pobierana raczej, bo klient mimo braku połączenia z Internetem pokazuje listę wiadomości.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 449
hipekk napisał(a):
@chomikowski: To pewnie zależy od klienta pocztowego, ale w niektórych lista wiadomości jest pobierana raczej, bo klient mimo braku połączenia z Internetem pokazuje listę wiadomości.
to wlasnie definiuje protokol albo pop3 gdzie pobierasz emaile z serwera albo imap gdzie pracujesz na katalogu i np mozesz skasowac wyslany juz email
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1866
Ja mówiłem o IMAPie.
Mimo, że mam konto skonfigurowane na IMAP to listę wiadomości widzę też wtedy gdy jestem offline.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1866
Napisałeś
chomikowski napisał(a):
Jesli uzywasz imap to nic nie pobierasz zadnehj poczty ani zalacznikow
A ja Ci mówię, że niektóre programy ściągają (również przy użyciu IMAPa) - dzięki temu lista wiadomości jest dostępna również przy braku połączenia z Internetem.
Jeżeli program nic nie ściąga to skąd wie jakie są maile w skrzynce w chwili gdy nie ma połączenia z Internetem?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 435
@chomikowski: to nie jest tak, że w trybie offline nie możesz odczytywać wiadomości z protokołem IMAP (no, chyba, że używasz do tego przeglądarki internetowej). Wszystko zależy jak jest ustawiony program pocztowy a zwykle ustawione są tak, że (nawet na przykładzie Outlook) wiadomości są ściągane protokołem IMAP i zapisywane lokalnie na maszynie (@hipekk w tym wypadku możesz zapisywać je do bazy) dzięki czemu są one dostępne dostępu do sieci.
Następnie przy ponownym sprawdzeniu poczty, następuje synchronizacja wiadomości (ściągane nagłówki @hipekk - https://www.php.net/manual/en/function.imap-headers.php w odpowiedzi dostajesz ID wiadomości, które pozwoli Ci na identyfikacje wiadomości na serwerze i u Ciebie w bazie) i "dociąganie" tylko tego czego brakuje. To tak w skrócie.