По умолчанию единственным механизмом аутентификации для IMAP является команда LOGIN
, которая принимает незашифрованное имя пользователя и пароль.Вы можете добавить слой шифрования поверх него, либо подключившись через IMAP, либо запустив слой TLS с помощью команды STARTTLS
, но для этого все равно требуется, чтобы клиент знал пароль в виде открытого текста.
При желании сервер можеттакже предоставьте методы аутентификации SASL, вызываемые через команду AUTHENTICATE
.Сервер объявляет, какие механизмы SASL он поддерживает, в своем ответе на команду CAPABILITY
.Например, если сервер поддерживает функцию «AUTH=PLAIN
», клиент может использовать метод аутентификации PLAIN
SASL с помощью команды AUTHENTICATE PLAIN
IMAP.
Gmail поддерживает только один механизм аутентификации SASL, XOAUTH
:
C: 1 capability
S: * CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA XLIST CHILDREN XYZZY
SASL-IR AUTH=XOAUTH
S: 1 OK Thats all she wrote! dv32if2169247ibb.17
XOAUTH
- это нестандартный механизм аутентификации SASL, использующий OAuth.(Символ «X» означает, что он не стандартизирован.) Google опубликовал документ, определяющий механизм XOAUTH
SASL .Они также предоставили пакет google-mail-xoauth-tools , который включает в себя пример кода, показывающий, как использовать JavaMail с Gmail через XOAUTH
.