小编典典

请通过您的网络浏览器登录:https://support.google.com/mail/accounts/answer/78754(失败)

java

我正在尝试使用基于imap协议的java邮件api连接到我的邮箱。我检查并确定我插入了正确的参数。这是我得到的以下异常:

[ALERT]请通过网络浏览器登录:https
:
//support.google.com/mail/accounts/answer/78754(失败)

我不知道为什么会这样,此外,我在我的gmail帐户设置中启用了imap选项。

我的代码是:

 Properties protocol = new Properties();
 protocol.setProperty("mail.store.protocol", "imaps");

 try{
      Session session = Session.getInstance(protocol, null);
      Store store = session.getStore();
      String host = prop.getProperty("host");
      String email = prop.getProperty("username");
      String password = prop.getProperty("password");
      store.connect(host, email, password);
      Folder inbox = store.getFolder("INBOX");
      inbox.open(Folder.READ_ONLY);
      int messageCount = inbox.getMessageCount();
      model.addAttribute("msg","number of mails"+" "+messageCount);
      Message[] messages = inbox.getMessages();
      PrintWriter writer = new PrintWriter(username+".txt", "UTF-8");

      for(int i=0;i<messageCount || prop.getProperty("status").equals(status.RUNNING.toString()) ;i++ ){
          model.addAttribute("msg","Reading Mails");
          Multipart mp = (Multipart) messages[i].getContent();
          BodyPart bp = mp.getBodyPart(0);
          writer.println("From:"+ messages[i].getFrom()+" "+"Subject:"+messages[i].getSubject()+" "+"Message:"+bp.getContent());
          prop =  loadProperties(username+".properties");
       }
       writer.close();
       inbox.close(true);
       store.close();

    }catch (Exception e){
                    model.addAttribute("msg","Exception:"+e.getMessage());
}

阅读 9005

收藏
2020-11-19

共1个答案

小编典典

搜索后,我发现需要将主机名更改为 imap.googlemail.com

以下代码已更改:

mail.store.protocol

变成:

imap.googlemail.com
2020-11-19