2012-07-11 3 views
2

저는 Gmail받은 편지함 메시지를 읽으려면 javamail API를 사용하려고했습니다. 인터넷에서 다음 코드를 발견했습니다. 이클립스에서 실행하려고하지만 "잘못된 자격 증명 예외"로 실패하고 있습니다. mail.jar, activation.jar, imap.jar 및 기타 jar 파일은 web-app의 lib 디렉토리에 있습니다.javamail api가 Gmail받은 편지함 메시지에 액세스합니다.

이 예외가 발생하는 이유는 무엇입니까? 감사.

javax.mail.AuthenticationFailedException: Invalid credentials n67if632335wep.219 
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:665) 
at javax.mail.Service.connect(Service.java:295) 
at javax.mail.Service.connect(Service.java:176) 
at org.mb.mail.MailReader.main(MailReader.java:23) 


package org.mb.mail; 

import java.util.Properties; 

import javax.mail.Folder; 
import javax.mail.Message; 
import javax.mail.MessagingException; 
import javax.mail.NoSuchProviderException; 
import javax.mail.Session; 
import javax.mail.Store; 
import javax.mail.*; 

public class MailReader { 

public static void main(String args[]) { 
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", "<username>", "password"); 
System.out.println(store); 

Folder inbox = store.getFolder("Inbox"); 
inbox.open(Folder.READ_ONLY); 
Message messages[] = inbox.getMessages(); 
for(Message message:messages) { 
System.out.println(message); 

}

 } catch (NoSuchProviderException e) { 
      e.printStackTrace(); 
      System.exit(1); 
     } catch (MessagingException e) { 
      e.printStackTrace(); 
      System.exit(2); 
     } 

    } 

} 
+0

"password"를 암호로 전달하고 있으며 사용자 이름이 유효하지 않은 것으로 보입니다. 잘못된 자격 증명 예외에 대해 설명 할 수 있습니다. 연결중인 시스템에 유효한 사용자 이름이 실제로 있습니까? –

답변

2

던져 멀리 그 코드는 또한 디버깅 팁을 포함한 기타 유용한 팁을 많이 찾을 수 있습니다 this code from the JavaMail FAQ를 사용합니다.

관련 문제