Почтовый протокол (POP) — это стандартный интернет-протокол прикладного уровня, используемый локальными почтовыми клиентами для получения электронной почты с удаленного сервера через соединение TCP / IP. POP поддерживает простые требования загрузки и удаления для доступа к удаленным почтовым ящикам. Сервер POP3 прослушивает известный порт 110.
Пакет com.sun.mail.pop3 является поставщиком протокола POP3 для API JavaMail, который обеспечивает доступ к хранилищу сообщений POP3. В таблице ниже перечислены классы в этом пакете:
название | Описание |
---|---|
POP3Folder | Папка POP3 (может быть только «INBOX»). |
POP3Message | Сообщение POP3. |
POP3SSLStore | Хранилище сообщений POP3 с использованием SSL. |
POP3Store | Магазин сообщений POP3. |
Некоторые моменты, которые следует отметить выше этого поставщика:
-
Поставщик POP3 поддерживает только одну папку с именем INBOX . Из-за ограничений протокола POP3 многие функции JavaMail API, такие как уведомление о событиях, управление папками, управление флагами и т. Д., Не допускаются.
-
Доступ к поставщику POP3 осуществляется через API JavaMail с помощью имени протокола pop3 или URL-адреса в виде pop3: // user: password @ host: port / INBOX « .
-
POP3 не поддерживает постоянных флагов. Например, флаг Flags.Flag.RECENT никогда не будет установлен для сообщений POP3. Приложение должно определить, какие сообщения в почтовом ящике POP3 являются новыми .
-
POP3 не поддерживает метод Folder.expunge (). Чтобы удалить и удалить сообщения, установите флаг Flags.Flag.DELETED на сообщениях и закройте папку, используя метод Folder.close (true).
-
POP3 не предоставляет полученную дату , поэтому метод getReceivedDate вернет значение null.
-
При обращении к заголовкам сообщения POP3 поставщик POP3 использует команду TOP для извлечения всех заголовков, которые затем кэшируются.
-
Когда осуществляется доступ к содержимому сообщения POP3, поставщик POP3 использует команду RETR для получения всего сообщения.
-
Метод POP3Message.invalidate можно использовать для аннулирования кэшированных данных без закрытия папки.
Поставщик POP3 поддерживает только одну папку с именем INBOX . Из-за ограничений протокола POP3 многие функции JavaMail API, такие как уведомление о событиях, управление папками, управление флагами и т. Д., Не допускаются.
Доступ к поставщику POP3 осуществляется через API JavaMail с помощью имени протокола pop3 или URL-адреса в виде pop3: // user: password @ host: port / INBOX « .
POP3 не поддерживает постоянных флагов. Например, флаг Flags.Flag.RECENT никогда не будет установлен для сообщений POP3. Приложение должно определить, какие сообщения в почтовом ящике POP3 являются новыми .
POP3 не поддерживает метод Folder.expunge (). Чтобы удалить и удалить сообщения, установите флаг Flags.Flag.DELETED на сообщениях и закройте папку, используя метод Folder.close (true).
POP3 не предоставляет полученную дату , поэтому метод getReceivedDate вернет значение null.
При обращении к заголовкам сообщения POP3 поставщик POP3 использует команду TOP для извлечения всех заголовков, которые затем кэшируются.
Когда осуществляется доступ к содержимому сообщения POP3, поставщик POP3 использует команду RETR для получения всего сообщения.
Метод POP3Message.invalidate можно использовать для аннулирования кэшированных данных без закрытия папки.
Поставщик протокола POP3 поддерживает следующие свойства, которые могут быть установлены в объекте сеанса JavaMail. Свойства всегда задаются как строки; столбец Тип описывает, как строка интерпретируется.
название | Тип | Описание |
---|---|---|
mail.pop3.user | строка | Имя пользователя по умолчанию для POP3. |
mail.pop3.host | строка | Сервер POP3 для подключения. |
mail.pop3.port | ИНТ | Порт сервера POP3 для подключения, если метод connect () явно не указывает его. По умолчанию 110. |
mail.pop3.connectiontimeout | ИНТ | Значение времени ожидания для сокета в миллисекундах. По умолчанию это бесконечный тайм-аут. |
mail.pop3.timeout | ИНТ | Тайм-аут сокета ввода-вывода в миллисекундах. По умолчанию это бесконечный тайм-аут. |
mail.pop3.rsetbeforequit | логический | Перед закрытием папки перед отправкой команды QUIT отправьте команду POP3 RSET. По умолчанию установлено значение false. |
mail.pop3.message.class | строка | Имя класса подкласса com.sun.mail.pop3.POP3Message. Подкласс может использоваться для обработки (например) нестандартных заголовков Content-Type. Подкласс должен иметь открытый конструктор в форме MyPOP3Message (папка f, int msgno), генерирует исключение MessagingException. |
mail.pop3.localaddress | строка | Локальный адрес (имя хоста) для привязки при создании сокета POP3. По умолчанию используется адрес, выбранный классом Socket. |
mail.pop3.localport | ИНТ | Номер локального порта для привязки при создании сокета POP3. По умолчанию используется номер порта, выбранный классом Socket. |
mail.pop3.apop.enable | логический | Если установлено значение true, используйте APOP вместо USER / PASS для входа на сервер POP3, если сервер POP3 поддерживает APOP. APOP отправляет дайджест пароля, а не открытый текстовый пароль. По умолчанию false. |
mail.pop3.socketFactory | Сокет Фабрика | Если установлен класс, который реализует интерфейс javax.net.SocketFactory, этот класс будет использоваться для создания сокетов POP3. |
mail.pop3.socketFactory.class | строка | Если установлено, указывает имя класса, который реализует интерфейс javax.net.SocketFactory. Этот класс будет использоваться для создания сокетов POP3. |
mail.pop3.socketFactory.fallback | логический | Если задано значение true, сбой при создании сокета с использованием указанного класса фабрики сокетов приведет к созданию сокета с использованием класса java.net.Socket. По умолчанию true. |
mail.pop3.socketFactory.port | ИНТ | Определяет порт для подключения при использовании указанной фабрики сокетов. Если не установлен, будет использоваться порт по умолчанию. |
mail.pop3.ssl.enable | логический | Если установлено значение true, используйте SSL для подключения и используйте порт SSL по умолчанию. По умолчанию установлено значение false для протокола «pop3» и «true» для протокола «pop3s». |
mail.pop3.ssl.checkserveridentity | логический | Если установлено значение true, проверьте идентичность сервера, как указано в RFC 2595. По умолчанию установлено значение false. |
mail.pop3.ssl.trust | строка | Если установлено, и фабрика сокетов не была указана, разрешает использование MailSSLSocketFactory. Если установлено «*», все хосты являются доверенными. Если задан список хостов, разделенных пробелами, эти хосты являются доверенными. В противном случае доверие зависит от сертификата, который предоставляет сервер. |
mail.pop3.ssl.socketFactory | SSL Socket Factory | Если установлен класс, который расширяет класс javax.net.ssl.SSLSocketFactory, этот класс будет использоваться для создания сокетов POP3 SSL. |
mail.pop3.ssl.socketFactory.class | строка | Если установлено, указывает имя класса, который расширяет класс javax.net.ssl.SSLSocketFactory. Этот класс будет использоваться для создания сокетов POP3 SSL. |
mail.pop3.ssl.socketFactory.port | ИНТ | Определяет порт для подключения при использовании указанной фабрики сокетов. Если не установлен, будет использоваться порт по умолчанию. |
mail.pop3.ssl.protocols | строка | Определяет протоколы SSL, которые будут включены для соединений SSL. Значение свойства представляет собой разделенный пробелами список токенов, приемлемых для метода javax.net.ssl.SSLSocket.setEnabledProtocols. |
mail.pop3.starttls.enable | логический | Если установлено значение true, разрешает использование команды STLS (если она поддерживается сервером) для переключения соединения на соединение с защитой TLS перед выполнением каких-либо команд входа в систему. По умолчанию false. |
mail.pop3.starttls.required | логический | Если истина, требует использования команды STLS. Если сервер не поддерживает команду STLS или команда не выполнена, метод подключения завершится ошибкой. По умолчанию false. |
mail.pop3.socks.host | строка | Задает имя хоста прокси-сервера SOCKS5, который будет использоваться для соединений с почтовым сервером. |
mail.pop3.socks.port | строка | Задает номер порта для прокси-сервера SOCKS5. |
mail.pop3.disabletop | логический | Если установлено значение true, команда POP3 TOP не будет использоваться для получения заголовков сообщений. По умолчанию false. |
mail.pop3.forgettopheaders | логический | Если установлено значение true, заголовки, которые могли быть получены с помощью команды POP3 TOP, будут забыты и заменены заголовками, полученными как часть команды POP3 RETR. По умолчанию false. |
mail.pop3.filecache.enable | логический | Если установлено значение true, поставщик POP3 будет кэшировать данные сообщения во временном файле, а не в памяти. Сообщения добавляются в кэш только при доступе к содержимому сообщения. Заголовки сообщений всегда кэшируются в памяти (по запросу). Кэш файлов удаляется, когда папка закрывается или JVM завершается. По умолчанию false. |
mail.pop3.filecache.dir | строка | Если кэш файлов включен, это свойство можно использовать для переопределения каталога по умолчанию, используемого JDK для временных файлов. |
mail.pop3.cachewriteto | логический | Управляет поведением метода writeTo для объекта сообщения POP3. Если установлено значение true, а содержимое сообщения еще не было кэшировано, а ignoreList равно нулю, сообщение кэшируется перед записью. В противном случае сообщение передается прямо в выходной поток без кэширования. По умолчанию false. |
mail.pop3.keepmessagecontent | логический | Если для этого свойства установлено значение true, будет сохранена жесткая ссылка на кэшированное содержимое, что предотвратит повторное использование памяти до тех пор, пока не будет закрыта папка или пока не будет явно недействительным кэшированное содержимое (с помощью метода invalidate). По умолчанию false. |
В общем, приложения не должны использовать классы в этом пакете напрямую. Вместо этого они должны использовать API, определенные пакетом javax.mail (и подпакетами). Приложения никогда не должны создавать экземпляры POP3Store или POP3Folder напрямую. Вместо этого им следует использовать метод Session getStore, чтобы получить соответствующий объект Store, и из этого получить объекты Folder.
Примеры использования POP3-сервера приведены в главе Проверка электронной почты .