JavaMail API-POP3 서버

POP (Post Office Protocol)는 로컬 전자 메일 클라이언트가 TCP / IP 연결을 통해 원격 서버에서 전자 메일을 검색하는 데 사용하는 응용 프로그램 계층 인터넷 표준 프로토콜입니다. POP는 원격 사서함에 액세스하기위한 간단한 다운로드 및 삭제 요구 사항을 지원합니다. POP3 서버는 잘 알려진 포트 110에서 수신 대기합니다.

꾸러미 com.sun.mail.pop3POP3 메시지 저장소에 대한 액세스를 제공하는 JavaMail API 용 POP3 프로토콜 공급자입니다. 아래 표에는이 패키지의 클래스가 나열되어 있습니다.

이름 기술
POP3 폴더 POP3 폴더 ( "INBOX"만 가능).
POP3Message POP3 메시지.
POP3SSLStore SSL을 사용하는 POP3 메시지 저장소.
POP3Store POP3 메시지 저장소.

이 공급자 위에 주목해야 할 몇 가지 사항 :

  • POP3 공급자는 이름이 지정된 단일 폴더 만 지원합니다. INBOX. POP3 프로토콜의 제한으로 인해 이벤트 알림, 폴더 관리, 플래그 관리 등과 같은 많은 JavaMail API 기능이 허용되지 않습니다.

  • POP3 공급자는 프로토콜 이름 pop3 또는 pop3 : // user : password @ host : port / INBOX " 형식의 URL을 사용하여 JavaMail API를 통해 액세스됩니다 .

  • 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 connect () 메서드가 명시 적으로 지정하지 않은 경우 연결할 POP3 서버 포트입니다. 기본값은 110입니다.
mail.pop3.connectiontimeout int 소켓 연결 제한 시간 값 (밀리 초). 기본값은 무한 시간 제한입니다.
mail.pop3.timeout int 소켓 I / O 제한 시간 값 (밀리 초). 기본값은 무한 시간 제한입니다.
mail.pop3.rsetbeforequit 부울 QUIT 명령을 보내기 전에 폴더를 닫을 때 POP3 RSET 명령을 보냅니다. 기본값은 거짓입니다.
mail.pop3.message.class com.sun.mail.pop3.POP3Message 하위 클래스의 클래스 이름입니다. 하위 클래스는 비표준 Content-Type 헤더를 처리하는 데 사용할 수 있습니다 (예 :). 하위 클래스에는 MyPOP3Message (Folder f, int msgno)가 MessagingException을 throw하는 형식의 공용 생성자가 있어야합니다.
mail.pop3.localaddress POP3 소켓을 만들 때 바인딩 할 로컬 주소 (호스트 이름)입니다. 기본값은 Socket 클래스에서 선택한 주소입니다.
mail.pop3.localport int POP3 소켓을 만들 때 바인딩 할 로컬 포트 ​​번호입니다. 기본값은 Socket 클래스에서 선택한 포트 번호입니다.
mail.pop3.apop.enable 부울 true로 설정하면 POP3 서버가 APOP를 지원하는 경우 USER / PASS 대신 APOP를 사용하여 POP3 서버에 로그인합니다. 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 포트를 사용합니다. 기본값은 "pop3"프로토콜의 경우 false이고 "pop3s"프로토콜의 경우 true입니다.
mail.pop3.ssl.checkserveridentity 부울 true로 설정된 경우 RFC 2595에 지정된대로 서버 ID를 확인합니다. 기본값은 false입니다.
mail.pop3.ssl.trust 설정되고 소켓 팩토리가 지정되지 않은 경우 MailSSLSocketFactory를 사용할 수 있습니다.
"*"로 설정하면 모든 호스트가 신뢰됩니다.
공백으로 구분 된 호스트 목록으로 설정하면 해당 호스트가 신뢰됩니다.
그렇지 않으면 신뢰는 서버가 제공하는 인증서에 따라 달라집니다.
mail.pop3.ssl.socketFactory SSL 소켓 팩토리 javax.net.ssl.SSLSocketFactory 클래스를 확장하는 클래스로 설정되면이 클래스는 POP3 SSL 소켓을 작성하는 데 사용됩니다.
mail.pop3.ssl.socketFactory.class 설정된 경우 javax.net.ssl.SSLSocketFactory 클래스를 확장하는 클래스의 이름을 지정합니다. 이 클래스는 POP3 SSL 소켓을 만드는 데 사용됩니다.
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 부울 true 인 경우 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 부울 POP3 메시지 개체에서 writeTo 메서드의 동작을 제어합니다. true로 설정되고 메시지 콘텐츠가 아직 캐시되지 않았고 ignoreList가 null 인 경우 메시지가 기록되기 전에 캐시됩니다. 그렇지 않으면 메시지가 캐시되지 않고 출력 스트림으로 직접 스트리밍됩니다. 기본값은 false입니다.
mail.pop3.keepmessagecontent 부울 이 속성을 true로 설정하면 캐시 된 콘텐츠에 대한 하드 참조가 유지되어 폴더가 닫히거나 캐시 된 콘텐츠가 명시 적으로 무효화 될 때까지 (무효화 메서드 사용) 메모리가 재사용되지 않습니다. 기본값은 false입니다.

일반적으로 애플리케이션은이 패키지의 클래스를 직접 사용해서는 안됩니다. 대신 javax.mail 패키지 (및 하위 패키지)에 정의 된 API를 사용해야합니다 . 응용 프로그램은 POP3Store 또는 POP3Folder의 인스턴스를 직접 구성해서는 안됩니다 . 대신 Session 메소드 getStore를 사용하여 적절한 Store 객체를 획득하고 그로부터 Folder 객체를 획득해야합니다.

POP3 서버를 사용하는 예는 이메일 확인 장에서 설명 합니다 .