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, aby obsługiwać autoryzację za pomocą standardowego w branży protokołu OAuth 2.0.
Protokół
Protokoły IMAP, POP i SMTP korzystają ze standardowej prostej warstwy uwierzytelniania i zabezpieczeń (SASL), która używa wbudowanych poleceń IMAP AUTHENTICATE
, POP AUTH
i SMTP AUTH
do uwierzytelniania użytkowników. Mechanizm SASL XOAUTH2 umożliwia klientom podawanie danych logowania OAuth 2 na potrzeby uwierzytelniania. Dokumentacja protokołu SASL XOAUTH2 zawiera szczegółowy opis mechanizmu SASL XOAUTH2 oraz biblioteki i próbki, które go implementują.
Połączenia przychodzące z serwerem IMAP pod adresem imap.gmail.com:993
i serwerem POP pod adresem pop.gmail.com:995
wymagają protokołu SSL. Serwer SMTP wychodzący, smtp.gmail.com
, obsługuje TLS. Jeśli klient rozpoczyna się od zwykłego tekstu, przed wydaniem polecenia STARTTLS użyj portu 465
(dla SSL) lub portu 587
(dla TLS).
Limity długości sesji
Sesje POP w Gmailu są ograniczone do około 7 dni. Sesje IMAP Gmaila są ograniczone do około 24 godzin. Jeśli sesja została uwierzytelniona za pomocą danych logowania OAuth, jest ograniczona do okresu ważności użytego tokena dostępu (zwykle 1 godzinę). W tym kontekście sesja to jedno ciągłe połączenie TCP.
Gdy czas upłynie i sesja dobiegnie końca, Gmail zamknie połączenie, wyświetlając komunikat o jej zakończeniu. Następnie klient może ponownie połączyć się z serwerem, uwierzytelnić się i kontynuować. Jeśli używasz OAuth, upewnij się, że używany token dostępu jest prawidłowy (jeśli spróbujesz użyć tokena dostępu starszego niż 1 godzinę, może on być nieprawidłowy).
Biblioteki i próbki
Dostęp do poczty przez IMAP lub POP oraz wysyłanie poczty przez SMTP są często realizowane za pomocą istniejących bibliotek IMAP i SMTP. Jeśli te biblioteki obsługują prostą warstwę uwierzytelniania i bezpieczeństwa (SASL), powinny być zgodne z mechanizmem SASL XOAUTH2 obsługiwanym przez Gmaila.
Oprócz dokumentacji protokołu SASL XOAUTH2 warto też przeczytać artykuł Uzyskiwanie dostępu do interfejsów API Google za pomocą protokołu OAuth 2.0, aby dowiedzieć się więcej o wdrażaniu klienta OAuth 2.0.
Na stronie Biblioteki i próbki znajdziesz przykłady kodu w różnych popularnych językach, które korzystają z mechanizmu SASL XOAUTH2 z protokołami IMAP lub SMTP.