Dlaczego pierwsza wiadomość czasem potrzebuje minuty

« Blog · Autor:

Rejestrujesz się gdzieś, czekasz na link potwierdzający – i nic. Po trzydziestu sekundach zaczynasz się zastanawiać, czy coś jest zepsute. Zwykle nie jest. Zwykle opóźnienie jest wbudowane.

Powód 1: greylisting

Wiele serwerów pocztowych celowo odrzuca wiadomość od nieznanego nadawcy przy pierwszej próbie – kodem błędu oznaczającym „spróbuj później”. Dopiero druga próba zostaje przyjęta.

Pomysł jest elegancki. Porządny serwer pocztowy ma kolejkę i ponawia próbę po kilku minutach. Skrypt spamowy nie – przerabia listę i znika. Greylisting filtruje więc nie po treści, lecz po wytrwałości.

Cena: pierwsza wiadomość od nowego nadawcy przychodzi zwykle z opóźnieniem od jednej do piętnastu minut. Każda kolejna jest natychmiast, bo para nadawca–odbiorca jest już znana.

Powód 2: kolejki po stronie nadawcy

Gdy serwis wysyła tysiąc wiadomości potwierdzających naraz, nie wychodzą one jednocześnie. Trafiają do kolejki i są przerabiane z ograniczoną prędkością – między innymi dlatego, że zbyt wiele równoczesnych połączeń do tego samego serwera odbiorcy wygląda podejrzanie.

Twoje potwierdzenie mogło więc powstać dawno temu i wciąż czekać.

Powód 3: sposób pobierania po stronie odbiorcy

Tu decyduje sposób pracy dostawcy.

Prostym rozwiązaniem jest odpytywanie (polling): w stałych odstępach sprawdza się, czy pojawiło się coś nowego. Jeśli serwis sprawdza co 30 sekund, wiadomość ma średnio 15 sekund, zanim w ogóle zostanie zauważona – w najgorszym razie 30.

Lepszym rozwiązaniem jest IMAP IDLE. Połączenie z serwerem pozostaje otwarte, a serwer sam zgłasza nową pocztę w chwili jej nadejścia. Wiadomość jest znana w ułamku sekundy zamiast po połowie interwału.

Do tego dochodzi często druga warstwa: strona w przeglądarce także co jakiś czas pyta, czy jest coś nowego. Te dwa interwały się sumują.

getSend korzysta z prostszego wariantu. Usługa na naszym serwerze łączy się ze skrzynką w losowych odstępach od 15 do 45 sekund i pobiera to, co się w niej znajduje. Interfejs w Twojej przeglądarce pyta co 3 do 13 sekund, czy pojawiło się coś nowego. Oba odstępy są celowo losowe, żeby zapytania nie trafiały wszystkie naraz. Średnio daje to około 38 sekund między dotarciem wiadomości na serwer pocztowy a jej pojawieniem się w skrzynce, a w najgorszym razie niecałą minutę.

Jak to się kumuluje

Etapkorzystnieniekorzystnie
Kolejka u nadawcy1 s60 s
Greylisting0 s900 s
Pobranie u odbiorcy< 1 s (IDLE)połowa interwału
Odświeżenie w przeglądarce< 1 społowa interwału

Greylisting jest zdecydowanie największą pozycją – i jedyną, której ani nadawca, ani odbiorca nie skróci w pojedynczym przypadku.

Co robić, gdy nic nie przychodzi

  1. Odczekaj dwie, trzy minuty. W większości przypadków sprawa rozwiąże się sama.
  2. Nie klikaj wielokrotnie „wyślij ponownie”. Powstaje wtedy kilka wiadomości, a część dostawców unieważnia wszystkie poza ostatnią – w efekcie nie działa żaden link.
  3. Sprawdź folder spam, jeśli korzystasz ze zwykłej skrzynki.
  4. Przeczytaj adres jeszcze raz. Literówka to najczęstsza przyczyna, a nikt nie dostaje o niej komunikatu.
  5. Dopiero potem poproś o nową wiadomość, najlepiej po pięciu minutach.

A jeśli naprawdę nigdy nie dojdzie?

Zwykle chodzi o jedną z trzech rzeczy: nadawca jest na liście blokującej, adres nie istnieje w takiej postaci, albo filtr po cichu odrzucił wiadomość. Ostatni przypadek jest najbardziej frustrujący, bo nikt nie dostaje informacji – ani Ty, ani nadawca.