title: Java : Using Javamail to read email
body: <p>I've been working on a program, that's suppose to use javamail, to read through an inbox, and if an email contains a specific String, it should be opened.</p>
  
  <p>First off, this is my first time trying to use this javamail api - I'm pretty sure that my properties are all messed up - Can anyone give me at tip on correctly setting up properties for javamail? </p>
  
  <p>Secondly, it seems like i can connect via the API, but if I try to search for subjects AND the subject is null, I get a null pointer exception - If I however don't try to match the subject with "Ordretest", I get no nullpointer - Any tips would be a great help :)</p>
  
  <pre><code>package vildereMail;
  
  import java.util.Properties;
  
  import javax.mail.Address;
  import javax.mail.BodyPart;
  import javax.mail.Folder;
  import javax.mail.Message;
  import javax.mail.MessagingException;
  import javax.mail.Multipart;
  import javax.mail.Session;
  import javax.mail.Store;
  import javax.mail.internet.InternetAddress;
  import javax.mail.search.FromTerm;
  import javax.mail.search.SearchTerm;
  import javax.mail.search.SubjectTerm;
  
  public class vildereMail {
  
  
      public boolean match(Message message) {
          try {
              if (message.getSubject().contains("Ordretest")) {
                  System.out.println("match found");
                  return true;
              }
          } catch (MessagingException ex) {
              ex.printStackTrace();
          }
          return false;
      };
          public static void main(String[] args) {
              Properties props = System.getProperties();
          props.setProperty("mail.store.protocol", "imaps");
              props.put("mail.imap-mail.outlook.com.ssl.enable", "true");
              props.put("mail.pop3.host", "outlook.com");
              props.put("mail.pop3.port", "995");
              props.put("mail.pop3.starttls.enable", "true");
              try {
                  Session session = Session.getInstance(props, null);
                  Store store = session.getStore();
                  store.connect("imap-mail.outlook.com", "myEmail@live.dk", "MyPassword");
                  session.setDebug(true);
                  Folder inbox = store.getFolder("INBOX");
                  inbox.open(Folder.READ_ONLY);
  
  
                  SearchTerm sender = new FromTerm(new InternetAddress("myMail@live.dk"));
  
                  Message[] messages = inbox.search(sender);
                  System.out.println(messages);
  
                  for (int i = 0 ; i &lt; messages.length ; i++) {
  
                      System.out.println(messages[i].getSubject());
                      if (messages[i].getSubject().equals(null)) {
                          System.out.println("null in subject");
                          break;
                      }
                      else if (messages[i].getSubject().contains("Ordretest")){
                          System.out.println("1 match found");
                      }
                      else {
                      System.out.println("no match");
                      }
                  }
                  System.out.println("no more messages");
                  store.close();
  
              } catch (Exception mex) {
                  mex.printStackTrace();
              }
          }
      }
  </code></pre>