2013-05-02 5 views
1

는 서버가 응답 예상치 못한자바 메일 인증 및 연결

문제는 때때로 같은 프로그램을 연결하고 메일을 얻을 수 있지만, 일부 시간이

를 throw이다

javax.mail.AuthenticationFailedException : 소켓상의 EOF가 com.sun.mail.pop3.POP3Store.protocolConnect (POP3Store.java:208) 에 있습니다. javax.mail.Service.connect (Service.java:295) at javax. mail.Service.connect (Service.java:176) at newpackage.P msPOP3Client.main (PmsPOP3Client.java:44)

오류

서버는

S: +OK Hello there. 
C: CAPA 
S: +OK Here's what I can do: 

내가 연결하고, 모든 메일을 가져올 수 있습니다 말할 때

S: EOF 

전 서버에 연결할 수 없습니다.

내 코드

수입하고있는 java.util. ; import javax.mail.; import javax.mail.event.ConnectionEvent; import javax.mail.event.ConnectionListener; import javax.mail.internet. *;

공용 클래스 PmsPOP3Client {

public static void main(String[] args) throws Exception { 
    try { 

     String host = "host"; 
     String user = "user"; 
     String password = "pass"; 
     Properties props = System.getProperties(); 
     Session session = Session.getDefaultInstance(props); 
     session.setDebug(true); 
     Store store = session.getStore("pop3"); 
     System.out.println("store.getURLName() = " + store.getURLName()); 
     store.connect(host, user, password); 
     Folder folder = store.getFolder("inbox"); 
     folder.open(Folder.READ_ONLY); 
     Message[] messages = folder.getMessages(); 
     for (int i = 0; i < messages.length; i++) { 
      System.out.println("------------ Message " + (i + 1) + " ------------"); 
      String from = InternetAddress.toString(messages[i].getFrom()); 
      if (from != null) { 
       System.out.println("From: " + from); 
      } 
      String replyTo = InternetAddress.toString(
        messages[i].getReplyTo()); 
      if (replyTo != null) { 
       System.out.println("Reply-to: " + replyTo); 
      } 
      String to = InternetAddress.toString(
        messages[i].getRecipients(Message.RecipientType.TO)); 
      if (to != null) { 
       System.out.println("To: " + to); 
      } 
      String cc = InternetAddress.toString(
        messages[i].getRecipients(Message.RecipientType.CC)); 
      if (cc != null) { 
       System.out.println("Cc: " + cc); 
      } 
      String bcc = InternetAddress.toString(
        messages[i].getRecipients(Message.RecipientType.BCC)); 
      if (bcc != null) { 
       System.out.println("Bcc: " + to); 
      } 
      String subject = messages[i].getSubject(); 
      if (subject != null) { 
       System.out.println("Subject: " + subject); 
      } 
      Date sent = messages[i].getSentDate(); 
      if (sent != null) { 
       System.out.println("Sent: " + sent); 
      } 
      Date received = messages[i].getReceivedDate(); 
      if (received != null) { 
       System.out.println("Received: " + received); 
      } 
      System.out.println(); 
     } 

     folder.close(true); 
     store.close(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} } 
+0

로 protocal 대신 POP3로 POP3S를 사용하여 시도해야합니다. "enexpected"를 정의하십시오. –

+0

문제는 동일한 프로그램이 연결되어 메일을 가져 오는 경우가 있지만 소켓에서 EOF가 발생합니다. \t com.sun.mail.pop3.POP3Store.protocolConnect (POP3Store.java:208) javax.mail.Service.connect에서 \t (Service.java:295) javax.mail.Service.connect에서 \t (Service.java:176) newpackage.PmsPOP3Client.main에서 \t (PmsPOP3Client.java:44) 에러 – Complicated

답변

0

당신은 당신의 서버에서 일부 포트 경합이 있는지 여부를 확인해야 할 수도 있습니다. 그것은 때로는 같은 포트를 사용하는 다른 프로그램과 때때로 자신의 메일 서버와 충돌 할 수 있습니다. 일시적으로 포트를 차단하고 연결할 클라이언트를 중지시킬 수있는 방화벽/바이러스 검사/etc에 대한 서버 시스템을 확인하십시오.

3

당신은 아마 정확히 문제가 무엇입니까? 다음

Store store = session.getStore("pop3s");