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 przez standardowy protokół OAuth 2.0.
Protokół
Do uwierzytelniania użytkowników IMAP, POP i SMTP korzystają ze standardowego prostego uwierzytelniania i zabezpieczenia (SASL) przy użyciu wbudowanych natywnych poleceń IMAP AUTHENTICATE
, POP AUTH
i SMTP AUTH
. Mechanizm SASL XOAUTH2 umożliwia klientom przekazywanie danych uwierzytelniających OAuth 2.0. Dokument SASL XOAUTH2 zawiera szczegółowy opis mechanizmów SASL XOAUTH2 oraz biblioteki i przykłady, w których zastosowano protokół.
Połączenia przychodzące z serwerem IMAP pod adresem imap.gmail.com:993
i serwerem POP na stronie pop.gmail.com:995
wymagają protokołu SSL. Wychodzący serwer SMTP, smtp.gmail.com
, obsługuje TLS. Jeśli klient zaczyna się od zwykłego tekstu, przed wykonaniem polecenia STARTTLS użyj portu 465
(na potrzeby SSL) lub 587
(na potrzeby TLS).
Limity długości sesji
Sesje POP w Gmailu są ograniczone do około 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, obowiązuje okres ważności używanego tokena dostępu (zwykle wynosi to 1 godzinę). Sesja w tym kontekście to jedno ciągłe połączenie TCP.
Gdy upłynie czas, a sesja wygaśnie, Gmail zamyka połączenie z komunikatem, że sesja wygasła. Gdy to nastąpi, klient może połączyć się ponownie, uwierzytelnić i kontynuować. Jeśli korzystasz z protokołu OAuth, upewnij się, że użyty token dostępu jest prawidłowy (jeśli spróbujesz użyć tokena dostępu starszego niż 1 godzina, może on być nieprawidłowy).
Biblioteki i próbki
Dostęp do poczty za pomocą protokołu IMAP lub POP oraz wysyłanie za pomocą protokołu SMTP często odbywa się za pomocą istniejących bibliotek IMAP i SMTP. Dopóki te biblioteki obsługują prosty mechanizm uwierzytelniania i zabezpieczenia (SASL), powinny być zgodne z mechanizmem SASL XOAUTH2 obsługiwanym przez Gmaila.
Więcej informacji o implementowaniu klienta OAuth 2.0 znajdziesz w dokumentacji SASL XOAUTH2 oraz w artykule o używaniu protokołu OAuth 2.0 do korzystania z interfejsów API Google.
Na stronie Biblioteki i przykłady znajdują się przykładowe fragmenty kodu w różnych popularnych językach. Wykorzystuje on mechanizm SASL XOAUTH2 z protokołem IMAP lub SMTP.