0
10 초마다 수신함을 확인하는 스레드가 있습니다. 내 메일 세션을 생성하고 루프를 저장하고 전에 가게 에 연결 :Java에서 메일을 동적으로 읽음
store.connect()
while (running) {
Thread.sleep(emailReceiveInterval);
inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_WRITE);
Message[] emails = inbox.getMessages();
[...]
inbox.close(true);
}
그게 문제는 스레드가 실행되는 동안 새로운 이메일이 포착되지 않은 것입니다.
그래서, 연결을 시도하고 루프의 가게에 근접했다 :
while (running) {
try {
Thread.sleep(emailReceiveInterval);
store.connect();
inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_WRITE);
Message[] emails = inbox.getMessages();
[...]
finally {
inbox.close(true); // Exception handling not posted
store.close(); // Exception handling not posted
}
}
첫 번째 루프는 괜찮 모든 이메일이 제대로 수신하지만 지금은 두 번째 가게에 NullPointerException이 나타납니다 .connect() :
java.lang.NullPointerException: null
at org.apache.geronimo.javamail.store.pop3.POP3Store.protocolConnect(POP3Store.java:164) ~[geronimo-javamail_1.4_mail-1.8.2.jar:1.8.2]
at javax.mail.Service.connect(Service.java:251) ~[geronimo-javamail_1.4_mail-1.8.2.jar:1.8.2]
at javax.mail.Service.connect(Service.java:91) ~[geronimo-javamail_1.4_mail-1.8.2.jar:1.8.2]
at javax.mail.Service.connect(Service.java:76) ~[geronimo-javamail_1.4_mail-1.8.2.jar:1.8.2]
at com.company.MyClass$ReceivingThread.run(MyClass.java:161) ~[target-eclipse/:na]
내가받은 편지함 모든 루프에 새로 고쳐집니다 그렇게해야합니까?
더 빨리 더 도움 들어, [SSCCE] (http://sscce.org/)를 게시 : 문제는 내가 또한 내에서 루프를 세션마다 에서 상점을 검색 할 수있는 것이 었습니다. –