IMAP — сокращение от Internet Access Access Protocol . Это интернет-протокол прикладного уровня, который позволяет почтовому клиенту получать доступ к электронной почте на удаленном почтовом сервере. IMAP-сервер обычно прослушивает общеизвестный порт 143. IMAP через SSL (IMAPS) назначается порту 993.
IMAP поддерживает как онлайн, так и автономный режимы работы. Почтовые клиенты, использующие IMAP, обычно оставляют сообщения на сервере, пока пользователь явно не удалит их.
Пакет com.sun.mail.imap является поставщиком протокола IMAP для API JavaMail, который предоставляет доступ к хранилищу сообщений IMAP. В таблице ниже перечислены интерфейс и классы этого провайдера:
Класс / Интерфейс | Описание |
---|---|
IMAPFolder.ProtocolCommand | Это простой интерфейс для пользовательских команд протокола IMAP. |
ACL | Это класс. Запись списка контроля доступа для определенного идентификатора аутентификации (пользователя или группы). |
IMAPFolder | Этот класс реализует папку IMAP. |
IMAPFolder.FetchProfileItem | Этот класс для получения заголовков. |
IMAPMessage | Этот класс реализует объект ReadableMime. |
IMAPMessage.FetchProfileCondition | Этот класс реализует тест для каждого сообщения в папке. |
IMAPSSLStore | Этот класс обеспечивает доступ к хранилищу сообщений IMAP через SSL. |
IMAPStore | Этот класс обеспечивает доступ к хранилищу сообщений IMAP. |
права | Этот класс представляет набор прав для идентификатора аутентификации (например, пользователя или группы). |
Rights.Right | Этот внутренний класс представляет индивидуальное право. |
SortTerm | Определенные критерии сортировки, определенные в RFC 5256. |
Некоторые моменты, которые следует отметить выше этого поставщика:
-
Этот поставщик поддерживает протоколы IMAP4 и IMAP4rev1.
-
Подключенное IMAPStore поддерживает пул объектов протокола IMAP для использования при обмене данными с сервером IMAP. Когда папки открываются и необходимы новые объекты протокола IMAP, IMAPStore предоставит их из пула соединений или создаст их, если их нет. Когда папка закрыта, ее объект протокола IMAP возвращается в пул соединений, если этот пул.
-
Подключенный объект IMAPStore может поддерживать или не поддерживать отдельный объект протокола IMAP, который предоставляет хранилище выделенное соединение с сервером IMAP.
Этот поставщик поддерживает протоколы IMAP4 и IMAP4rev1.
Подключенное IMAPStore поддерживает пул объектов протокола IMAP для использования при обмене данными с сервером IMAP. Когда папки открываются и необходимы новые объекты протокола IMAP, IMAPStore предоставит их из пула соединений или создаст их, если их нет. Когда папка закрыта, ее объект протокола IMAP возвращается в пул соединений, если этот пул.
Подключенный объект IMAPStore может поддерживать или не поддерживать отдельный объект протокола IMAP, который предоставляет хранилище выделенное соединение с сервером IMAP.
Поставщик протокола IMAP поддерживает следующие свойства, которые могут быть установлены в объекте сеанса JavaMail. Свойства всегда задаются как строки; столбец Тип описывает, как строка интерпретируется.
название | Тип | Описание |
---|---|---|
mail.imap.user | строка | Имя пользователя по умолчанию для IMAP. |
mail.imap.host | строка | IMAP-сервер для подключения. |
mail.imap.port | ИНТ | Порт сервера IMAP для подключения, если метод connect () явно не указывает его. По умолчанию 143. |
mail.imap.partialfetch | логический | Управляет использованием возможности частичной выборки IMAP. По умолчанию true. |
mail.imap.fetchsize | ИНТ | Частичный размер выборки в байтах. По умолчанию 16K. |
mail.imap.ignorebodystructuresize | логический | Ответ IMAP BODYSTRUCTURE включает в себя точный размер каждой части тела. Обычно этот размер используется для определения того, сколько данных нужно извлечь для каждой части тела. По умолчанию false. |
mail.imap.connectiontimeout | ИНТ | Значение времени ожидания для сокета в миллисекундах. По умолчанию это бесконечный тайм-аут. |
mail.imap.timeout | ИНТ | Тайм-аут сокета ввода-вывода в миллисекундах. По умолчанию это бесконечный тайм-аут. |
mail.imap.statuscachetimeout | ИНТ | Значение времени ожидания в миллисекундах для кэша ответа команды STATUS. По умолчанию 1000 (1 секунда). Ноль отключает кеш. |
mail.imap.appendbuffersize | ИНТ | Максимальный размер сообщения для буферизации в памяти при добавлении в папку IMAP. |
mail.imap.connectionpoolsize | ИНТ | Максимальное количество доступных соединений в пуле соединений. По умолчанию 1. |
mail.imap.connectionpooltimeout | ИНТ | Значение времени ожидания в миллисекундах для соединений пула соединений. По умолчанию 45000 (45 секунд). |
mail.imap.separatestoreconnection | логический | Флаг, указывающий, использовать ли выделенное хранилище для команд хранилища. По умолчанию установлено значение false. |
mail.imap.auth.login.disable | логический | Если значение равно true, предотвращает использование нестандартной команды AUTHENTICATE LOGIN вместо использования простой команды LOGIN. По умолчанию установлено значение false. |
mail.imap.auth.plain.disable | логический | Если true, запрещает использование команды AUTHENTICATE PLAIN. По умолчанию установлено значение false. |
mail.imap.auth.ntlm.disable | логический | Если true, запрещает использование команды AUTHENTICATE NTLM. По умолчанию установлено значение false. |
mail.imap.proxyauth.user | строка | Если сервер поддерживает расширение PROXYAUTH, в этом свойстве указывается имя пользователя, который будет действовать. Выполните аутентификацию на сервере, используя учетные данные администратора. После проверки подлинности поставщик IMAP выдаст команду PROXYAUTH с именем пользователя, указанным в этом свойстве. |
mail.imap.localaddress | строка | Локальный адрес (имя хоста) для привязки при создании сокета IMAP. По умолчанию используется адрес, выбранный классом Socket. |
mail.imap.localport | ИНТ | Номер локального порта для привязки при создании сокета IMAP. По умолчанию используется номер порта, выбранный классом Socket. |
mail.imap.sasl.enable | логический | Если установлено значение true, попытайтесь использовать пакет javax.security.sasl, чтобы выбрать механизм аутентификации для входа в систему. По умолчанию false. |
mail.imap.sasl.mechanisms | строка | Разделенный пробелами или запятыми список имен механизмов SASL, которые нужно использовать. |
mail.imap.sasl.authorizationid | строка | Идентификатор авторизации для использования в аутентификации SASL. Если не установлено, используется идентификатор аутентификации (имя пользователя). |
mail.imap.sasl.realm | строка | Область для использования с механизмами аутентификации SASL, которые требуют области, такой как DIGEST-MD5. |
mail.imap.auth.ntlm.domain | строка | Домен аутентификации NTLM. |
mail.imap.auth.ntlm.flags | ИНТ | Флаги, специфичные для протокола NTLM. |
mail.imap.socketFactory | Сокет Фабрика | Если установлен класс, который реализует интерфейс javax.net.SocketFactory, этот класс будет использоваться для создания сокетов IMAP. |
mail.imap.socketFactory.class | строка | Если установлено, указывает имя класса, который реализует интерфейс javax.net.SocketFactory. Этот класс будет использоваться для создания сокетов IMAP. |
mail.imap.socketFactory.fallback | логический | Если задано значение true, сбой при создании сокета с использованием указанного класса фабрики сокетов приведет к созданию сокета с использованием класса java.net.Socket. По умолчанию true. |
mail.imap.socketFactory.port | ИНТ | Определяет порт для подключения при использовании указанной фабрики сокетов. Порт по умолчанию используется, когда не установлен. |
mail.imap.ssl.enable | логический | Если установлено значение true, используйте SSL для подключения и используйте порт SSL по умолчанию. По умолчанию установлено значение false для протокола «imap» и значение true для протокола «imap». |
mail.imap.ssl.checkserveridentity | логический | Если установлено значение true, проверьте идентичность сервера, как указано в RFC 2595. По умолчанию установлено значение false. |
mail.imap.ssl.trust | строка | Если установлено, и фабрика сокетов не была указана, разрешает использование MailSSLSocketFactory. Если установлено «*», все хосты являются доверенными. Если задан список хостов, разделенных пробелами, эти хосты являются доверенными. В противном случае доверие зависит от сертификата, который предоставляет сервер. |
mail.imap.ssl.socketFactory | SSL Socket Factory | Если установлен класс, который расширяет класс javax.net.ssl.SSLSocketFactory, этот класс будет использоваться для создания сокетов IMAP SSL. |
mail.imap.ssl.socketFactory.class | строка | Если установлено, указывает имя класса, который расширяет класс javax.net.ssl.SSLSocketFactory. Этот класс будет использоваться для создания сокетов IMAP SSL. |
mail.imap.ssl.socketFactory.port | ИНТ | Определяет порт для подключения при использовании указанной фабрики сокетов. Если не установлен, будет использоваться порт по умолчанию. |
mail.imap.ssl.protocols | строка | Определяет протоколы SSL, которые будут включены для соединений SSL. Значение свойства представляет собой разделенный пробелами список токенов, приемлемых для метода javax.net.ssl.SSLSocket.setEnabledProtocols. |
mail.imap.starttls.enable | логический | При значении true разрешает использовать команду STARTTLS (если она поддерживается сервером) для переключения соединения на соединение, защищенное TLS, перед выполнением каких-либо команд входа в систему. По умолчанию установлено значение false. |
mail.imap.starttls.required | логический | Если истина, требует использования команды STARTTLS. Если сервер не поддерживает команду STARTTLS или команда не выполнена, метод подключения завершится ошибкой. По умолчанию false. |
mail.imap.socks.host | строка | Задает имя хоста прокси-сервера SOCKS5, который будет использоваться для соединений с почтовым сервером. |
mail.imap.socks.port | строка | Задает номер порта для прокси-сервера SOCKS5. Это следует использовать только в том случае, если прокси-сервер не использует стандартный номер порта 1080. |
mail.imap.minidletime | ИНТ | Это свойство устанавливает задержку в миллисекундах. Если не установлено, по умолчанию используется 10 миллисекунд. |
mail.imap.enableimapevents | логический | Включите специальные события, специфичные для IMAP, для доставки в ConnectionListener магазина. Если это правда, незапрошенные ответы, полученные во время бездействующего метода Магазина, будут отправлены как ConnectionEvents с типом IMAPStore.RESPONSE. Сообщение о событии будет необработанной строкой ответа IMAP. По умолчанию эти события не отправляются. |
mail.imap.folder.class | строка | Имя класса подкласса com.sun.mail.imap.IMAPFolder. Подкласс может использоваться для обеспечения поддержки дополнительных команд IMAP. У подкласса должны быть открытые конструкторы вида public MyIMAPFolder (String fullName, разделитель символов, хранилище IMAPStore, логическое isNamespace) и общедоступный MyIMAPFolder (ListInfo li, IMAPStore store) |
В общем случае приложения не должны использовать классы в этом пакете напрямую. Вместо этого они должны использовать API, определенные пакетом javax.mail (и подпакетами). Приложения никогда не должны создавать экземпляры IMAPStore или IMAPFolder напрямую. Вместо этого им следует использовать метод Session getStore, чтобы получить соответствующий объект Store, и из этого получить объекты Folder.
Примеры использования IMAP-сервера приведены в главе « Управление квотами» .