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, 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 uwierzytelniających OAuth 2. 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 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 godzina). 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 nawiązać połączenie, ponownie uwierzytelnić się i kontynuować. Jeśli korzystasz z protokołu OAuth, sprawdź, czy użyty 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ą 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 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 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.