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 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.