IMAP, POP i SMTP.

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.