Accessing emails from gmail using IMAP ( javamail API)

后端 未结 5 1749
無奈伤痛
無奈伤痛 2020-12-13 04:20

I am trying to access emails from Gmail accounts through IMAP with the help of the JavaMail API. I was wondering why the code works for one email account but doesn\'t work f

5条回答
  •  误落风尘
    2020-12-13 05:25

    You can try the following code:

    private List getResult1(){
      try {
        Properties props = new Properties();
        props.put("mail.store.protocol","imaps");
        Session session = Session.getDefaultInstance(props, null);
        Store store = session.getStore("imaps");
        store.connect("imap.gmail.com", "Email Id", "App Password");
    
        //if you want mail from specified folder, just change change folder name
        //Folder inbox = store.getFolder("[Gmail]/Drafts");
        Folder inbox = store.getFolder("inbox");
    
        inbox.open(Folder.READ_ONLY);
        int messageCount = inbox.getMessageCount();
        Log.e("getFolder ", "getResult1: " + store.getDefaultFolder().list("*"));
        javax.mail.Folder[] folders = store.getDefaultFolder().list("*");
    
        for (javax.mail.Folder folder : folders) {
          if ((folder.getType() & javax.mail.Folder.HOLDS_MESSAGES) != 0){
            Log.e("getFolder ", "getResult1: " + folder.getName() );
          }
        }
    
        Log.e("Mail Subject:", "Total Messages:-: " + messageCount );
        javax.mail.Message[] messages = inbox.getMessages();
    
        System.out.println("------------------------------");
        Log.e("Mail Subject:", "messages: " + messages.toString());
        for (int i = 0; i < messages.length; i++) {
          Log.e("Mail Subject:", "getResult1: " + messages[i].getSubject());
        }
        inbox.close(true);
        store.close();
      } catch (Exception e) {
        e.printStackTrace();
      }
      return null;
    }
    

提交回复
热议问题