W przypadku klientów innych niż Gmail Gmail obsługuje standardowe protokoły IMAP, POP i SMTP. Rozszerzyliśmy zakres obsługi serwerów IMAP, POP i SMTP Gmaila na obsługę autoryzacji za pomocą standardowego w branży protokołu OAuth 2.0.
Protokół
Do uwierzytelniania użytkowników protokoły IMAP, POP i SMTP używają standardowego uwierzytelniania prostego uwierzytelniania i warstwy zabezpieczeń (SASL) przy użyciu wbudowanych poleceń IMAP AUTHENTICATE
, POP AUTH
i SMTP AUTH
. Mechanizm SASL XOAUTH2 umożliwia klientom podanie danych uwierzytelniających 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 ten protokół został 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ą SSL. Wychodzący serwer SMTP (smtp.gmail.com
) obsługuje TLS. Jeśli klient zaczyna się od zwykłego tekstu, przed wysłaniem polecenia STARTTLS użyj portu 465
(SSL) lub 587
(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 za pomocą danych logowania OAuth, jest on ograniczony do około okresu ważności użytego tokena dostępu (zwykle do 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 z komunikatem o wygaśnięciu sesji. Po tym czasie klient może ponownie nawiązać połączenie, ponownie uwierzytelnić się 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 przykłady
Uzyskiwanie dostępu do poczty za pomocą protokołu IMAP lub POP i wysyłanie poczty za pomocą protokołu SMTP jest często przeprowadzane przy użyciu istniejących bibliotek IMAP i SMTP dla wygody. Jeśli te biblioteki obsługują proste uwierzytelnianie i warstwa zabezpieczeń (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ą OAuth 2.0, który zawiera dodatkowe informacje o wdrażaniu klienta OAuth 2.0.
Strona Biblioteki i przykłady zawiera przykłady kodu w różnych popularnych językach przy użyciu mechanizmu SASL XOAUTH2 z protokołem IMAP lub SMTP.