2011-03-15 61 views
0

我正在嘗試java中非常簡單的電子郵件客戶端。 當我啓動PROGRAME我有一個錯誤信息:如何在Java中設置電子郵件客戶端?

Exception in thread "main" javax.mail.AuthenticationFailedException: EOF on socket 
     at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:146) 
     at javax.mail.Service.connect(Service.java:297) 
     at javax.mail.Service.connect(Service.java:156) 
     at SimpleEmailClient2.main(SimpleEmailClient2.java:21) 
Java Result: 1 

爲什麼? 我使用Gmail帳戶,並且設置了POP和IMAP 我的代碼中可能有哪些錯誤? 謝謝

這裏是代碼:

import java.util.Properties; 

import javax.mail.Authenticator; 
import javax.mail.Folder; 
import javax.mail.Message; 
import javax.mail.PasswordAuthentication; 
import javax.mail.Session; 
import javax.mail.Store; 

public class SimpleEmailClient2 { 

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

    Properties props = new Properties(); 

    String host = "pop.gmail.com"; 
    String provider = "pop3"; 

    Session session = Session.getDefaultInstance(props, new MailAuthenticator()); 
    Store store = session.getStore(provider); 
    store.connect(host, null, null); 

    Folder inbox = store.getFolder("INBOX"); 
    if (inbox == null) { 
     System.out.println("No INBOX"); 
     System.exit(1); 
    } 
    inbox.open(Folder.READ_ONLY); 

    Message[] messages = inbox.getMessages(); 
    for (int i = 0; i < messages.length; i++) { 
     System.out.println("Message " + (i + 1)); 
     messages[i].writeTo(System.out); 
    } 
    inbox.close(false); 
    store.close(); 
    } 
} 

class MailAuthenticator extends Authenticator { 

    public MailAuthenticator() { 
    } 

    public PasswordAuthentication getPasswordAuthentication() { 
    return new PasswordAuthentication("[email protected]", "password"); 
    } 
} 
+0

嘗試使用imap。它完美的作品。請參閱http://stackoverflow.com/questions/61176/getting-mail-from-gmail-into-java-application-using-imap fror詳細信息 – 2011-03-15 13:52:06

回答

2

我不相信gmail支持pop3提供程序;你必須改用pop3s。否則,這應該很好。

+0

是的我試着用imap pop3s,我沒有錯誤信息,但沒有什麼,它只是顯示,它已成功完成,沒有別的,system.out什麼也沒有顯示。 – user618111 2011-03-15 14:02:36

+0

我不知道「pop3s with imap」是什麼意思 - 使用pop3s作爲提供者,使用pop.gmail.com作爲主機,這在過去對我很有用。 Stas Kurilin也許是對的 - 你會用「imap」作爲提供者,而「imap.gmail.com」作爲主機 - 但我從來沒有嘗試過。 – 2011-03-15 14:08:20

+0

我試過這個String host =「pop.gmail.com」; String provider =「pop3s」; – user618111 2011-03-15 14:11:13

1

甲骨文對連接JavaMail的信息到Gmail here

具體而言,您嘗試建立連接時看起來很失敗,可能是因爲您沒有指定連接的用戶名/密碼。嘗試使用類似的連接:

store.connect(host, "[email protected]", "[myPassword]"); 
+0

我使用我自己的電子郵件地址和密碼,我也有錯誤。 – user618111 2011-03-15 13:48:34

+0

是的,謝謝你,現在它的工作,我什麼也沒有在收件箱 – user618111 2011-03-15 14:35:42

相關問題