2012-03-31 2 views
2

Добрый вечер SOЧтение почты за POP3 в Gmail через Java

Я пытаюсь сделать замечательный кусок кода, который может восстановить сообщение по протоколу POP. Я до сих пор следовал RFC1939 (Спецификация POP).

А на самом деле он работает с POP3-сервера моего веб-хостинга (который не более чем SSL) .Но при доступе к GMail все, что я получаю пустые ответы :(

Я предполагаю, что это SSL часть, которая «ломать» его.

В моей функции «открыто», что создает гнездо у меня есть это:

public void open() throws UnknownHostException, IOException 
{ 
    if(this.SSL) 
    { 
     SSLSocketFactory fac = (SSLSocketFactory) SSLSocketFactory.getDefault(); 
     this.s = fac.createSocket(this.in_host, this.in_port); 
    } 
    else 
    { 
     this.s = new Socket(this.in_host, this.in_port); 
    } 

    this.out = new PrintWriter(s.getOutputStream(), true); 
    this.in = new BufferedReader(new InputStreamReader(s.getInputStream())); 
} 

SSL, где это BOOL, указывающее соединение должно быть более SSL и s это гнездо in_host и.- хост (pop.gmail.com) и порт (995). out и in - это потоки, которые я пишу и читаю в/из.

Одна из худших частей заключается в том, что она не вызывает никаких ошибок. Где я обычно получаю ответ, я просто получаю пустую строку.

Вопрос: Как подключиться к POP-серверу через SSL/TLS, желательно сервер Gmail?

ответ

3

А что-то вроде этого:

public void connect() throws Exception { 

    String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; 

    Properties pop3Props = new Properties(); 

    pop3Props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY); 
    pop3Props.setProperty("mail.pop3.socketFactory.fallback", "false"); 
    pop3Props.setProperty("mail.pop3.port", "995"); 
    pop3Props.setProperty("mail.pop3.socketFactory.port", "995"); 

    URLName url = new URLName("pop3", "pop.gmail.com", 995, "", 
      username, password); 

    session = Session.getInstance(pop3Props, null); 
    store = new POP3SSLStore(session, url); 
    store.connect(); 

} 

Смотрите эту article для получения дополнительной информации.

+0

Я стараюсь избегать использования javax.mail.Message и javax.mail.Folder: /, но да, это работает так, как должно, оно просто не соответствует моим потребностям :) – f2lollpll

Смежные вопросы