从Outlook Javamail中读取邮件

时间:2017-06-08 04:20:38

标签: java email outlook javamail imap

我试图使用javamail阅读来自outlook的电子邮件

此处为代码段。

try {
      Properties props = new Properties();        
      props.setProperty("mail.store.protocol", "imap");
      props.setProperty("mail.imaps.starttls.enable", "true");    
      props.setProperty("mail.imaps.host", "outlook.office365.com");
      props.setProperty("mail.imaps.port", "143");    
      Session mailSession = Session.getInstance(props); 
      mailSession.setDebug(true);
      Store mailStore = mailSession.getStore("imaps");
      mailStore.connect("outlook.office365.com", "<username>", "<password>");                     
  } catch (Exception ex){
      ex.printStackTrace();
  }

异常

javax.mail.MessagingException:无法识别的SSL消息,明文连接?   嵌套异常是:     javax.net.ssl.SSLException:无法识别的SSL消息,明文连接?     在com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:727)

任何指针都表示赞赏。

2 个答案:

答案 0 :(得分:1)

您的代码非常混乱。保持简单:

  Properties props = new Properties();        
  props.setProperty("mail.imap.ssl.enable", "true");     
  Session mailSession = Session.getInstance(props); 
  mailSession.setDebug(true);
  Store mailStore = mailSession.getStore("imap");
  mailStore.connect("outlook.office365.com", "<username>", "<password>");

使用“imap”协议,但告诉JavaMail启用SSL。不要担心端口,JavaMail知道该怎么做。 JavaMail FAQ中的更多细节。

答案 1 :(得分:0)

端口143(您正在使用的)用于纯文本IMAP(因此错误消息plaintext connection?)。 IMAPS使用端口993,所以试试吧。