IMAP, POP i SMTP

W przypadku klientów innych niż Gmail obsługujemy 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), która do uwierzytelniania użytkowników wykorzystuje wbudowane natywne polecenia IMAP AUTHENTICATE, POP AUTH i SMTP AUTH. Mechanizm SASL XOAUTH2 umożliwia klientom podawanie danych logowania OAuth 2.0 na potrzeby uwierzytelniania. W dokumentacji protokołu SASL XOAUTH2 szczegółowo opisano mechanizm SASL XOAUTH2. Dostępne są też biblioteki i przykłady, w których zaimplementowano 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 godziny). 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 za pomocą protokołu IMAP lub POP oraz wysyłanie poczty za pomocą protokołu 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.