JavaMail API - серверы POP3
Почтовый протокол (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 многие возможности API JavaMail, такие как уведомление о событиях, управление папками, управление флагами и т. Д., Запрещены.
Доступ к провайдеру 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 | int | Порт сервера POP3 для подключения, если в методе connect () он явно не указан. По умолчанию 110. |
mail.pop3.connectiontimeout | int | Значение тайм-аута подключения к сокету в миллисекундах. По умолчанию - бесконечный тайм-аут. |
mail.pop3.timeout | int | Значение тайм-аута ввода-вывода сокета в миллисекундах. По умолчанию - бесконечный тайм-аут. |
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 | int | Номер локального порта для привязки при создании сокета 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 | int | Задает порт для подключения при использовании указанной фабрики сокетов. Если не установлен, будет использоваться порт по умолчанию. |
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 | Если установлен класс, расширяющий класс javax.net.ssl.SSLSocketFactory, этот класс будет использоваться для создания сокетов SSL POP3. |
mail.pop3.ssl.socketFactory.class | Строка | Если установлено, указывает имя класса, расширяющего класс javax.net.ssl.SSLSocketFactory. Этот класс будет использоваться для создания сокетов SSL POP3. |
mail.pop3.ssl.socketFactory.port | int | Задает порт для подключения при использовании указанной фабрики сокетов. Если не установлен, будет использоваться порт по умолчанию. |
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 имеет значение null, сообщение кэшируется перед записью. В противном случае сообщение передается прямо в выходной поток без кэширования. По умолчанию - false. |
mail.pop3.keepmessagecontent | логический | Если для этого свойства установлено значение true, жесткая ссылка на кэшированное содержимое будет сохраняться, предотвращая повторное использование памяти до тех пор, пока папка не будет закрыта или кэшированное содержимое не будет явно признано недействительным (с использованием метода invalidate). По умолчанию - false. |
Как правило, приложения не должны использовать классы из этого пакета напрямую. Вместо этого они должны использовать API, определенные пакетом javax.mail (и подпакетами). Приложения никогда не должны создавать экземпляры POP3Store или POP3Folder напрямую. Вместо этого они должны использовать метод сеанса getStore для получения соответствующего объекта Store, а затем для получения объектов Folder.
Примеры использования POP3-сервера показаны в главе « Проверка электронной почты» .