IMAP, POP i SMTP

W przypadku klientów innych niż Gmail Gmail obsługuje standardowe protokoły IMAP, POP i SMTP. Serwery IMAP, POP i SMTP Gmaila zostały uzupełnione o obsługę autoryzacji przy użyciu zgodnego ze standardem branżowym protokołu OAuth 2.0.

Protokół

Protokoły IMAP, POP i SMTP do uwierzytelniania użytkowników używają standardowego prostego uwierzytelniania i warstwy zabezpieczeń (SASL) z wbudowanymi poleceniami IMAP AUTHENTICATE, POP AUTH i SMTP AUTH. Mechanizm SASL XOAUTH2 umożliwia klientom dostarczanie danych uwierzytelniających OAuth 2.0. Dokumentacja protokołu SASL XOAUTH2 zawiera szczegółowe omówienie mechanizmu SASL XOAUTH2. Dostępne są biblioteki i przykłady, w których ten protokół jest wdrożony.

Połączenia przychodzące do serwera IMAP w domenie imap.gmail.com:993 i serwera POP w domenie pop.gmail.com:995 wymagają protokołu SSL. Wychodzący serwer SMTP (smtp.gmail.com) obsługuje protokół TLS. Jeśli klient zaczyna się od zwykłego tekstu, przed wysłaniem polecenia STARTTLS użyj portu 465 (dla SSL) lub portu 587 (dla protokołu TLS).

Limity długości sesji

Sesje POP Gmaila są ograniczone do około 7 dni. Sesje IMAP Gmaila są ograniczone do około 24 godzin. Jeśli sesja została uwierzytelniona przy użyciu danych logowania OAuth, jest on ograniczony do około okresu ważności użytego tokena dostępu (zwykle 1 godziny). Sesja w tym kontekście to jedno ciągłe połączenie TCP.

Po upływie określonego czasu i wygaśnięciu sesji Gmail zamyka połączenie i wyświetla informację o wygaśnięciu sesji. Po tym czasie klient może się ponownie połączyć, uwierzytelnić ponownie i kontynuować. Jeśli korzystasz z protokołu OAuth, upewnij się, że użyty token dostępu jest prawidłowy (jeśli próbujesz użyć tokena dostępu starszego niż godzinę, może on być nieprawidłowy).

Biblioteki i przykłady

Uzyskiwanie dostępu do poczty za pomocą protokołu IMAP lub POP i wysyłanie wiadomości za pomocą protokołu SMTP jest często wykorzystywane dla wygody przy użyciu istniejących bibliotek IMAP i SMTP. Jeśli te biblioteki obsługują proste uwierzytelnianie i zabezpieczenia (SASL), powinny być one zgodne z mechanizmem SASL XOAUTH2 obsługiwanym przez Gmaila.

Oprócz dokumentacji protokołu SASL XOAUTH2 warto też zapoznać się z artykułem Korzystanie z protokołu OAuth 2.0 do uzyskiwania dostępu do interfejsów API Google, w którym znajdziesz więcej informacji o implementowaniu klienta OAuth 2.0.

Na stronie Biblioteki i przykłady znajdziesz przykłady kodu w różnych popularnych językach przy użyciu mechanizmu SASL XOAUTH2 z protokołem IMAP lub SMTP.