IMAP, POP i SMTP

W przypadku klientów innych niż Gmail usługa Gmail obsługuje standardowe protokoły IMAP, POP i SMTP. Serwery IMAP, POP i SMTP Gmaila obsługują autoryzację za pomocą standardowego protokołu OAuth 2.0.

Protokół

Protokoły IMAP, POP i SMTP korzystają ze standardowej warstwy SASL (Simple Authentication and Security Layer), używając 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.0 na potrzeby uwierzytelniania. Dokumentacja protokołu SASL XOAUTH2 zawiera szczegółowy opis mechanizmu SASL XOAUTH2. Dostępne są też biblioteki i przykłady implementujące 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 trwają około 7 dni. Sesje IMAP Gmaila trwają maksymalnie około 24 godzin. Jeśli sesja została uwierzytelniona przy użyciu danych logowania OAuth, trwa ona mniej więcej tyle, ile okres ważności użytego tokena dostępu (zwykle 1 godzinę). 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 informującym 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

Dla wygody programiści często uzyskują dostęp do poczty za pomocą protokołów IMAP lub POP i wysyłają e-maile za pomocą protokołu SMTP, korzystając z 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 dowiedzieć się więcej o wdrażaniu klienta OAuth 2.0.

Na stronie Biblioteki i przykłady OAuth 2.0 znajdziesz przykłady kodu w różnych popularnych językach, które korzystają z mechanizmu SASL XOAUTH2 z protokołami IMAP lub SMTP.