2
나는 POP3 프로토콜을 사용하여 outlook받은 편지함을 읽는 간단한 프로그램을 구현하려했지만 읽지 않은 메일이 2 개인 경우에도 서버가 제로 메일을 반환합니다. 이 문제가 왜 발생합니까? Microsoft Exchange 서버 설정과 관련이 있습니까?Java Mail API받은 편지함을 읽을 수 없습니다.
public void retrieveEmail() {
// JavaMail API - Exchange server to allow IMAP access
// mail server connection parameters
String user = "";
String password = "";
// connect to my pop3 inbox
Properties properties = new Properties();
properties.put("mail.store.protocol", "pop3");
properties.put("mail.pop3.host", host);
properties.put("mail.pop3.port", "110");
properties.put("mail.pop3.user", user);
properties.put("mail.pop3.timeout", "158000");
properties.put("mail.pop3.connectiontimeout", "158000");
Session session = Session.getInstance(properties);
session.setDebug(true);
Store store = null;
Folder inbox = null;
try {
store = session.getStore("pop3");
store.connect(host, user, password);
inbox = store.getFolder("Inbox");
inbox.open(Folder.READ_ONLY);
// get the list of inbox messages
int totalMsg = inbox.getMessageCount();
int unread = inbox.getUnreadMessageCount();
Message[] messages = inbox.getMessages();
Message[] msg = inbox.search(new FlagTerm(new Flags(Flag.SEEN), false));
System.out.print("size " + messages .length);
if (messages.length == 0) System.out.println("No messages found.");
for (int i = 0; i < messages.length; i++) {
// stop after listing ten messages
if (i > 10) {
System.exit(0);
inbox.close(true);
store.close();
}
System.out.println("Message " + (i + 1));
System.out.println("From : " + messages[i].getFrom()[0]);
System.out.println("Subject : " + messages[i].getSubject());
Object content = messages[i].getContent();
if (content instanceof String)
System.out.print((String)content);
/* text/plain = String
* multipart" = Multipart
* MimeMessage
* input stream = Unknown Data Handler
*/
}
inbox.close(true);
store.close();
} catch (NoSuchProviderException e) {
System.out.println(e.getMessage());
} catch (MessagingException e) {
System.out.println(e.getMessage());
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
편집 1 :
나는 그것을 디버깅 및 폴더의 변수 전체가 제로
이 도와주세요 것으로 알고 있습니다.
감사합니다.
프로덕션 사용자 이름 + 비밀번호를 게시하지 않기를 바랍니다. – home
Outlook에서 많은 이메일이있는 것으로 나타 났지만 Java Mail API가 Microsoft Exchange 서버에서 메시지를 가져올 수없는 이유는 무엇입니까? – peterwkc
어쩌면 일부 인증 매개 변수가 누락되었습니다. http://www.oracle.com/technetwork/java/faq-135477.html#Exchange-login –