Aplikacja do sprawdzania poczty

0

Witam.
Napisałem sobie aplikację do sprawdzania poczty gmail co 15 sekund.

Odpytało paredziesiąt razy i

"ConnectionResetError: [WinError 10054] Istniejące połączenie zostało gwałtownie zamknięte przez zdalnego hosta"

Poprosiłem o poradę co się stało, i się dowiedziałem, że

Sprawdzanie poczty e-mail co 15 sekund może znacząco obciążyć serwer poczty, zwłaszcza jeśli 
wiele osób wykonuje tę samą czynność jednocześnie. Chociaż nowoczesne serwery poczty są 
zaprojektowane tak, aby obsługiwać określoną ilość ruchu 
i żądań, częste i szybkie sprawdzanie poczty może nadal prowadzić do pewnych potencjalnych problemów:

Obciążenie serwera: Częste sprawdzanie poczty może zwiększyć użycie procesora i pamięci serwera,
co może wpłynąć na jego ogólną wydajność. Może to spowolnić inne usługi hostowane na tym samym 
serwerze lub spowodować opóźnienia w dostarczaniu wiadomości e-mail innym użytkownikom.

Ruch w sieci: Częste sprawdzanie poczty generuje więcej ruchu w sieci między twoim klientem poczty 
a serwerem. Jeśli wiele osób robi to samo, może to obciążyć infrastrukturę sieciową, co prowadzi 
do potencjalnych spowolnień.

Wyczerpanie baterii: Jeśli sprawdzasz pocztę na urządzeniu mobilnym, częste sprawdzanie może 
szybciej wyczerpywać baterię.

Blokady konta: Niektóre serwery poczty mają mechanizmy bezpieczeństwa, które mogą tymczasowo 
zablokować twoje konto, jeśli wykryją dużą liczbę prób logowania w krótkim czasie. Częste 
sprawdzanie poczty może spowodować aktywację takich mechanizmów, co skutkuje tymczasowym 
ograniczeniem dostępu.

Wzrost kosztów: W przypadku usług pocztowych, które pobierają opłaty za korzystanie, częste 
sprawdzanie poczty może prowadzić do wyższych kosztów dla firmy świadczącej usługę.


Czy to nie jest trochę histeryczne przedstawienie zagadanienia?
Czy może to być alternatywa dla DDoS?
Co będzie, jeśli dam zmienny czas logowania? przy każdej pętli uśpienia inna wartość np. 13,14,15,16,13...

1

Pewnie Gmail to wyblokował rozpoznając takie zachowanie jako swego rodzaju atak. Jak bardzo chcesz mieć responsywniejszego maila to spróbuj wykorzystać https://developers.google.com/gmail/api/guides/push?hl=pl

0

a to zrób wersje na IMAP bo sadzać po problemie to używasz POP , moze to delikatna sugestia aby tego nie używać starego protokołu

0
Marius.Maximus napisał(a):

a to zrób wersje na IMAP bo sadzać po problemie to używasz POP , moze to delikatna sugestia aby tego nie używać starego protokołu

Z pewnościa to nie związane z problemem. Co więcej, gdybym by adminem d..nego serwera poczty, IMAP by mnie kosztowało więcej zasobów a na pewno nie mniej.

baroo napisał(a):

Pewnie Gmail to wyblokował rozpoznając takie zachowanie jako swego rodzaju atak. Jak bardzo chcesz mieć responsywniejszego maila to spróbuj wykorzystać https://developers.google.com/gmail/api/guides/push?hl=pl

Kierunek na push raczej bedzie dobry.

15 sekund to naprawdę DOS.
Mój ulubiony program androidowy "odwiecznie" miał najmniej 1 min, od kilku lat minimum to 15 min.

0

@AnyKtokolwiek: OP dość mgliście opisał o co mu chodzi ale na moje oko to IMAP rozwiązuje punkty 1,2,3,5,6 bo działa inaczej niz POP nie generuje niepotrzebnego ruchu , nie ma wielu połączeń itp. a po stronie serwera praktycznie nie ma obciążenia (obserwacja na własnym serwerze pocztowym około 300 połączeń uptime 0.07 )

0

Nie wiem, może to coś komuś pomoże
"no need" komunikat, że ostatni mail jest taki sam jak ostatni zapisany w bazie danych, i że nie ma potrzeby jej nadpisywać nową zawartością.

No need
No need
No need
No need
No need
No need
No need
No need
No need
Traceback (most recent call last):
  File "C:\kody\kody2\pyth.py", line 102, in <module>
    fetch_latest_email()
  File "C:\kody\kody2\pyth.py", line 40, in fetch_latest_email
    results = service.users().messages().list(userId='me', maxResults=1).execute()
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\juzio\AppData\Roaming\Python\Python311\site-packages\googleapiclient\_helpers.py", line 130, in 
  positional_wrapper
    return wrapped(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\juzio\AppData\Roaming\Python\Python311\site-packages\googleapiclient\http.py", line 923, in execute
  
    resp, content = _retry_request(
                    ^^^^^^^^^^^^^^^
  File "C:\Users\juzio\AppData\Roaming\Python\Python311\site-packages\googleapiclient\http.py", line 222, in _retry_request
  
    raise exception
  File "C:\Users\juzio\AppData\Roaming\Python\Python311\site-packages\googleapiclient\http.py", line 191, in _retry_request
  
    resp, content = http.request(uri, method, *args, **kwargs)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\juzio\AppData\Roaming\Python\Python311\site-packages\google_auth_httplib2.py", line 218, in request
  
    response, content = self.http.request(
                        ^^^^^^^^^^^^^^^^^^
  File "C:\Users\juzio\AppData\Roaming\Python\Python311\site-packages\httplib2\__init__.py", line 1724, in request
  
    (response, content) = self._request(
                          ^^^^^^^^^^^^^^
  File "C:\Users\juzio\AppData\Roaming\Python\Python311\site-packages\httplib2\__init__.py", line 1444, in _request
  
    (response, content) = self._conn_request(conn, request_uri, method, body, headers)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\juzio\AppData\Roaming\Python\Python311\site-packages\httplib2\__init__.py", line 1366, in _conn_request
  
    conn.connect()
  File "C:\Users\juzio\AppData\Roaming\Python\Python311\site-packages\httplib2\__init__.py", line 1202, in connect
  
    raise socket_err
  File "C:\Users\juzio\AppData\Roaming\Python\Python311\site-packages\httplib2\__init__.py", line 1158, in connect
  
    self.sock = self._context.wrap_socket(sock, server_hostname=self.host)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Python311\Lib\ssl.py", line 517, in wrap_socket
    return self.sslsocket_class._create(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Python311\Lib\ssl.py", line 1075, in _create
    self.do_handshake()
  File "C:\Program Files\Python311\Lib\ssl.py", line 1346, in do_handshake
    self._sslobj.do_handshake()
ConnectionResetError: [WinError 10054] Istniejące połączenie zostało gwałtownie zamknięte przez zdalnego hosta

Chodzi mi o to, że pomagam pisać aplikację do kontaktu mailowego. I firma będzie potrzebować wiedzieć kiedy mail dotarł. 15 minut to brzmi nie poważnie w XXI wieku.
W sumie notifikcje push winhooki to chyba właściwszy kierunek, napisałem maila do interii jak to u nich uruchomić, gdzie mam podąć im link do mojego skryptu.

0

Aplikacja do sprawdzania poczty powinna korzystać z protokołów używany przez usługi pocztowe
A tutaj widzę HTTPS, to coś tu jest dziwne , interia udostępnia API ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1