有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从Outlook Javamail读取邮件

我正在尝试使用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。邮政MessaginException:无法识别的SSL消息,纯文本连接?; 嵌套异常是: javax。网ssl。SSLException:无法识别的SSL消息,纯文本连接? 在com。太阳邮政imap。IMAPStore。protocolConnect(IMAPStore.java:727)

任何指点都很感激


共 (2) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

    你的代码很混乱。保持简单:

      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