2012-04-04 10 views
0

我試圖通過使用java郵件API在我的gmail帳戶中讀取郵件。這是代碼:javax.mail.MessagingException:在嘗試使用java郵件API訪問Gmail時重置連接

import java.util.*; 
import java.io.*; 
import java.awt.*; 
import javax.mail.*; 
import javax.mail.search.FlagTerm; 
import javax.mail.Flags.Flag; 
public class MailPharser { 
/** 
* @param args 
*/ 
public void mailRead() 
{ 
    Folder inbox; 
    // TODO Auto-generated method stub 
    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]>", "<password>"); 
     inbox = store.getFolder("Inbox"); 
     System.out.println("No of Unread Messages : " + inbox.getUnreadMessageCount()); 


    } 
    catch (Exception ex) 
    { System.out.println("Error caught"); ex.printStackTrace(); } 

} 

public static void main(String[] args) { 
    MailPharser mp = new MailPharser(); 
    mp.mailRead(); 
} 

} 

在運行時,我得到下面的錯誤:

javax.mail.MessagingException: Connection reset; 
    nested exception is: 
java.net.SocketException: Connection reset 
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:670) 
at javax.mail.Service.connect(Service.java:295) 
at javax.mail.Service.connect(Service.java:176) 
at MailPharser.mailRead(MailPharser.java:26) 
at MailPharser.main(MailPharser.java:40) 
Caused by: java.net.SocketException: Connection reset 
at java.net.SocketInputStream.read(Unknown Source) 
at com.sun.net.ssl.internal.ssl.InputRecord.readFully(Unknown Source) 
at com.sun.net.ssl.internal.ssl.InputRecord.read(Unknown Source) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source) 
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source) 
at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:548) 
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:352) 
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:233) 
at com.sun.mail.iap.Protocol.<init>(Protocol.java:113) 
at com.sun.mail.imap.protocol.IMAPProtocol.<init>(IMAPProtocol.java:111) 
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:637) 
... 4 more 

我加入的跟蹤,看到連接調用失敗。我做錯了什麼?任何幫助都可以做到。在此先感謝...

回答

0

這可能是與JavaMail無關的網絡問題,例如,您與Gmail之間的代理或防火牆。

如果你想知道你的代碼是壞了還是網絡壞了,你可以test using the code that comes with JavaMail。如果JavaMail代碼有效,那麼您知道代碼有問題,並且您可以使用FAQ中的JavaMail代碼來改進代碼。

如果您發現這是一個網絡問題,那麼JavaMail FAQ也有tips for debugging it further

相關問題