W przypadku klientów innych niż Gmail usługa Gmail obsługuje standardowe protokoły IMAP, POP i SMTP. Serwery Gmaila IMAP, POP i SMTP zostały rozszerzone o obsługę autoryzacji za pomocą standardowego protokołu OAuth 2.0.
Protokół
Protokoły IMAP, POP i SMTP używają standardowej warstwy SASL (Simple Authentication and Security Layer), korzystając z wbudowanych natywnych poleceń IMAP AUTHENTICATE, POP AUTH i SMTP AUTH, do uwierzytelniania użytkowników. Mechanizm SASL XOAUTH2 umożliwia klientom podawanie danych logowania OAuth 2.0 na potrzeby uwierzytelniania. Dokumentacja protokołu SASL XOAUTH2 zawiera szczegółowy opis mechanizmu SASL XOAUTH2. Dostępne są też biblioteki i przykłady, które implementują ten 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 poczty wychodzącej, smtp.gmail.com, obsługuje TLS. Jeśli klient zaczyna od zwykłego tekstu, przed wydaniem polecenia STARTTLS użyj portu 465 (w przypadku SSL) lub portu 587 (w przypadku 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 przy użyciu danych logowania OAuth, jest ona ograniczona do okresu ważności użytego tokena dostępu (zwykle 1 godzina). Sesja w tym kontekście to jedno ciągłe połączenie TCP.
Gdy czas minie i sesja wygaśnie, Gmail zamknie połączenie z komunikatem o wygaśnięciu sesji. Następnie klient może ponownie nawiązać połączenie, ponownie się uwierzytelnić 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 godzina, może on być nieprawidłowy).
Biblioteki i przykłady
Dostęp do poczty przez IMAP lub POP oraz wysyłanie poczty przez SMTP często odbywa się przy użyciu istniejących bibliotek IMAP i SMTP. Jeśli te biblioteki obsługują Simple Authentication and Security Layer (SASL), powinny być zgodne z mechanizmem SASL XOAUTH2 obsługiwanym przez Gmaila.
Oprócz dokumentacji protokołu SASL XOAUTH2 możesz też przeczytać artykuł Używanie protokołu OAuth 2.0 na potrzeby dostępu do interfejsów API Google, aby uzyskać więcej informacji o wdrażaniu klienta OAuth 2.0.
Na stronie Biblioteki i przykłady znajdziesz przykłady kodu w różnych popularnych językach, które korzystają z mechanizmu SASL XOAUTH2 z protokołami IMAP lub SMTP.