2013-09-30 1 views
0

필자가 작성한 응용 프로그램을 사용하여 회사의 Exchange 서버에 연결하려고합니다. 나는 2 일 동안 똑바로 찾았고 나는 그것이 효과가 없을 이유를 알 수 없다. 나는 가능한 한이 간단하게 유지하기 위해 노력하고IMAP 용 JavaMail 설정 문제

 String to = "[email protected]"; 
     String from = "[email protected]"; 
     String host = "mail.exchange.server.net"; 
final String username = "[email protected]"; 
final String password = "password"; 
     String provider = "imap"; 

     Properties props = new Properties(); 
//  props.put("mail.smtp.host", host); 
     props.put("mail.store.protocol", "imap"); 
//  props.put("mail.smtp.user", username); 
//  props.put("mail.smtp.password", password); 
     props.put("mail.imap.port", "143"); 
//  props.put("mail.smtp.auth", "true"); 

    //Removed to simplify method// 

//  Authenticator authenticator = new Authenticator() { 
//   @Override 
//   protected PasswordAuthentication getPasswordAuthentication() { 
//    return new PasswordAuthentication(username, password); 
//   } 
//  }; 

    Session session = Session.getInstance(props);  
    Store store = session.getStore(provider); 

    try { 
     Message msg = new MimeMessage(session); 
     msg.setFrom(new InternetAddress(from)); 
     InternetAddress[] address = {new InternetAddress(to)}; 
     msg.setRecipients(Message.RecipientType.TO, address); 
     msg.setSubject("Test"); 
     msg.setSentDate(new Date()); 
     msg.setText("This works."); 
     Transport transport = session.getTransport(); 
     transport.connect(username, password); 
     transport.sendMessage(msg, msg.getRecipients(Message.RecipientType.TO)); 
     Transport.send(msg); 
     transport.sendMessage(msg, address); 
     if (transport == null) { 

      JOptionPane.showMessageDialog(rootPane, "Mail carrier was shot. Sorry."); 
     } 

:

첫째, 여기 내 코드입니다. SSL 없음, IMAPS 없음, 인증자가 없습니다. 공급자를 받아들이기를 거부합니다. "잘못된 공급자"또는 "공급자 null"이라는 메시지 (System.err.println 통해)를 다시 시작합니다. IMAP 프로토콜을 사용하는 일반, 바닐라 Exchange 서버에 연결하기에 JavaMail API만으로 충분하다는 가정하에 있습니다. 여기

내가 얻고 무엇을 : JavaMail에이 IMAP을 위해 아무것도하지 않고 내 프로젝트에 다른 lib 디렉토리를 가져올 것처럼

나에게
javax.mail.NoSuchProviderException: Invalid protocol: null 
    at javax.mail.Session.getProvider(Session.java:449) 
    at javax.mail.Session.getTransport(Session.java:667) 
    at javax.mail.Session.getTransport(Session.java:648) 
    at javax.mail.Session.getTransport(Session.java:634) 

, 그것은 보인다. 아무도 무슨 일이 일어나는지 보지 않습니까?

에로의 부록 : 내 휴대 전화, iPad 및 노트북을 통해 세션을 설정할 수 있습니다. 따라서 포트 또는 연결 문제가 아니라고 생각합니다. 당분간 서버에 연결하려고합니다. 나는 나중에 인증의 세부 사항을 알아낼 수 있습니다.

감사합니다.

답변

0

당신은 이메일을 보내려고하지만 당신은하지 설치 귀하의 등록 정보에서 전송 서버를 할 ...

뭔가 같은 :

props.put("mail.host", "mysmtp.com"); 
props.put ("mail.transport.protocol", "smtp");