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 rozszerzone o obsługę autoryzacji za pomocą standardowego protokołu OAuth 2.0.

Protokół

protokoły IMAP, POP i SMTP do uwierzytelniania użytkowników używają standardowych poleceń Simple Authentication and Security Layer (SASL)za pomocą wbudowanych poleceń protokołów IMAP AUTHENTICATE, POPAUTH i SMTP AUTH. Mechanizm SASL XOAUTH2 umożliwia klientom podawanie danych uwierzytelniających protokołu OAuth 2.0. Dokumentacja protokołu SASL XOAUTH2 szczegółowo opisuje mechanizm SASL XOAUTH2. Dostępne są też biblioteki i przykłady, w których zaimplementowano protokół.

Połączenia przychodzące do serwera IMAP pod adresem imap.gmail.com:993 i serwera POP pod adresem 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 uruchomieniem polecenia STARTTLS użyj portu 465 (w przypadku protokołu SSL) lub 587 (w przypadku protokołu TLS).

Limity długości sesji

Sesje POP Gmaila mogą trwać maksymalnie 7 dni. Sesje IMAP w Gmailu są ograniczone do około 24 godzin. Jeśli sesja została uwierzytelniona przy użyciu danych logowania OAuth, jest ona ograniczona do okresu ważności używanego tokena dostępu (zwykle 1 godzina). W tym kontekście sesja to jedno ciągłe połączenie TCP.

Gdy ten czas mija, a sesja wygasa, Gmail zamyka połączenie z komunikatem o wygaśnięciu sesji. Po tym czasie klient może połączyć się ponownie, przeprowadzić uwierzytelnianie ponownie i kontynuować. Jeśli korzystasz z OAuth, upewnij się, że token dostępu jest prawidłowy (jeśli próbujesz użyć tokena dostępu starszego niż godzina, może on być nieprawidłowy).

Biblioteki i próbki

Dostęp do poczty za pomocą protokołów IMAP lub POP oraz wysyłanie poczty za pomocą protokołu SMTP jest często możliwe przy użyciu istniejących bibliotek IMAP i SMTP. Jeśli te biblioteki obsługują technologię SASL (Simple Authentication and Security Layer), powinny być zgodne z mechanizmem SASL XOAUTH2 obsługiwanym przez Gmaila.

Oprócz dokumentacji protokołu SASL XOAUTH2 możesz też przeczytać artykuł Uzyskiwanie dostępu do interfejsów API Google przy użyciu OAuth 2.0, w którym znajdziesz więcej informacji o implementowaniu klienta OAuth 2.0.

Na stronie Biblioteki i przykłady znajdziesz przykładowe fragmenty kodu w wielu popularnych językach, które korzystają z mechanizmu SASL XOAUTH2 z protokołem IMAP lub SMTP.