2012-10-08 2 views
3

Java 응용 프로그램을 통해 메일을 읽으려고 Gmail에 Gmail에 연결하려고합니다. 내가 ..JavaMail store.connect() 시간 초과 - Java를 통해 Gmail받은 편지함을 읽을 수 없습니다.

  • jdk1.6.0_13
  • 있는 javamail-1.4.3 libs가 사용하고 - (mail.jar, mailapi.jar을, imap.jar은) 다음

내 코드입니다 : MailReader.java

import java.util.Properties; 
import javax.mail.MessagingException; 
import javax.mail.Session; 
import javax.mail.Store; 

public class MailReader 
{ 
    public static void main(String[] args) 
    { 
     readMail();  
    } 

    public static void readMail() 
    { 
     Properties props = System.getProperties(); 
     props.setProperty("mail.store.protocol", "imaps"); 
     try 
     { 
      Session session = Session.getDefaultInstance(props, null); 
      Store store = session.getStore("imaps"); 
      store.connect("imap.gmail.com", "[email protected]", "myPwd"); 
      System.out.println("Store Connected.."); 

      //inbox = (Folder) store.getFolder("Inbox"); 
      //inbox.open(Folder.READ_WRITE); 
      //Further processing of inbox.... 
     } 
     catch (MessagingException e) 
     { 
      e.printStackTrace();    
     } 
    } 
} 

내가 저장소가 연결 얻을 수 있지만, (store.connect 위해 전화 기대는) 결코 반환되지 않으며 I 출력 아래 얻을 :


javax.mail.MessagingException : Connection timed out;
중첩 예외이다
java.net.ConnectException : 연결이 javax.mail.Service에서 com.sun.mail.imap.IMAPStore.protocolConnect (IMAPStore.java:441)
에서
을 초과. 연결 (Service.java:233) javax.mail.Service.connect (Service.java:134) ReadMail.main에서 ReadMail.readMail (ReadMail.java:21)
에서
(ReadMail.java에서
: 10)

그러나 SMTP, Transport.send() 및 동일한 gmail 계정을 사용하여 Java로 이메일을 보낼 수 있습니다. 그러나 이메일을 읽을 수는 없습니다. 해결책은 무엇이 될 수 있습니까?

답변

0

IMAP는 sendmail (25)에 다른 포트 (비보안의 경우 143, 안전한 경우 993)를 작동하며 차단 된 것 같습니다. 해당 포트에서 해당 서버로 텔넷 할 수 있습니까?

telnet imap.gmail.com {port number} 

네트워크에 연결되어 있는지 여부를 나타냅니다.

+0

나는 리눅스에있어, "nmap -p 993 imap.gmail.com"을했는데 그 상태는 '걸러졌다'. 그래서 나는 그 항구가 막히는 것이 맞을 것 같아. – viv

+0

텔넷 또는 기타 네트워크 유틸리티를 사용하여 네트워크 문제를 진단하는 것이 서버가 정상적으로 작동하는지 확인하는 가장 간단한 방법입니다 –

+0

감사합니다. 나는 몇 시간 동안 붙어 있었다. .. – viv

관련 문제