Class ExchangeSession.Message

java.lang.Object
davmail.exchange.ExchangeSession.Message
All Implemented Interfaces:
Comparable<ExchangeSession.Message>
Direct Known Subclasses:
DavExchangeSession.Message, GraphExchangeSession.Message
Enclosing class:
ExchangeSession

public abstract class ExchangeSession.Message extends Object implements Comparable<ExchangeSession.Message>
Exchange message.
  • Field Details

    • messageList

      public ExchangeSession.MessageList messageList
      enclosing message list
    • messageUrl

      public String messageUrl
      Message url.
    • permanentUrl

      public String permanentUrl
      Message permanent url (does not change on message move).
    • uid

      public String uid
      Message uid.
    • contentClass

      public String contentClass
      Message content class.
    • keywords

      public String keywords
      Message keywords (categories).
    • imapUid

      public long imapUid
      Message IMAP uid, unique in folder (x0e230003).
    • size

      public int size
      MAPI message size.
    • date

      public String date
      Message date (urn:schemas:mailheader:date).
    • read

      public boolean read
      Message flag: read.
    • deleted

      public boolean deleted
      Message flag: deleted.
    • junk

      public boolean junk
      Message flag: junk.
    • flagged

      public boolean flagged
      Message flag: flagged.
    • recent

      public boolean recent
      Message flag: recent.
    • draft

      public boolean draft
      Message flag: draft.
    • answered

      public boolean answered
      Message flag: answered.
    • forwarded

      public boolean forwarded
      Message flag: forwarded.
    • mimeContent

      protected byte[] mimeContent
      Unparsed message content.
    • mimeMessage

      protected javax.mail.internet.MimeMessage mimeMessage
      Message content parsed in a MIME message.
  • Constructor Details

    • Message

      public Message()
  • Method Details

    • getPermanentId

      public abstract String getPermanentId()
      Get permanent message id. permanentUrl over WebDav or ItemId over EWS
      Returns:
      permanent id
    • getImapUid

      public long getImapUid()
      IMAP uid , unique in folder (x0e230003)
      Returns:
      IMAP uid
    • setImapUid

      public void setImapUid(long imapUid)
      Set IMAP uid.
      Parameters:
      imapUid - new uid
    • getUid

      public String getUid()
      Exchange uid.
      Returns:
      uid
    • getImapFlags

      public String getImapFlags()
      Return message flags in IMAP format.
      Returns:
      IMAP flags
    • loadMimeMessage

      public void loadMimeMessage() throws IOException, javax.mail.MessagingException
      Load message content in a Mime message
      Throws:
      IOException - on error
      javax.mail.MessagingException - on error
    • getMimeMessage

      public javax.mail.internet.MimeMessage getMimeMessage() throws IOException, javax.mail.MessagingException
      Get message content as a Mime message.
      Returns:
      mime message
      Throws:
      IOException - on error
      javax.mail.MessagingException - on error
    • getMatchingHeaderLinesFromHeaders

      public Enumeration<?> getMatchingHeaderLinesFromHeaders(String[] headerNames) throws javax.mail.MessagingException
      Throws:
      javax.mail.MessagingException
    • getMatchingHeaderLines

      public Enumeration<?> getMatchingHeaderLines(String[] headerNames) throws javax.mail.MessagingException, IOException
      Throws:
      javax.mail.MessagingException
      IOException
    • getMimeHeaders

      protected abstract InputStream getMimeHeaders()
    • getMimeMessageSize

      public int getMimeMessageSize() throws IOException, javax.mail.MessagingException
      Get message body size.
      Returns:
      mime message size
      Throws:
      IOException - on error
      javax.mail.MessagingException - on error
    • getRawInputStream

      public InputStream getRawInputStream() throws IOException, javax.mail.MessagingException
      Get message body input stream.
      Returns:
      mime message InputStream
      Throws:
      IOException - on error
      javax.mail.MessagingException - on error
    • dropMimeMessage

      public void dropMimeMessage()
      Drop mime message to avoid keeping message content in memory, keep a single message in MessageList cache to handle chunked fetch.
    • isLoaded

      public boolean isLoaded()
    • delete

      public void delete() throws IOException
      Delete message.
      Throws:
      IOException - on error
    • moveToTrash

      public void moveToTrash() throws IOException
      Move message to trash, mark message read.
      Throws:
      IOException - on error
    • markRead

      public void markRead() throws IOException
      Mark message as read.
      Throws:
      IOException - on error
    • compareTo

      public int compareTo(ExchangeSession.Message message)
      Comparator to sort messages by IMAP uid
      Specified by:
      compareTo in interface Comparable<ExchangeSession.Message>
      Parameters:
      message - other message
      Returns:
      imapUid comparison result
    • equals

      public boolean equals(Object message)
      Override equals, compare IMAP uids
      Overrides:
      equals in class Object
      Parameters:
      message - other message
      Returns:
      true if IMAP uids are equal
    • hashCode

      public int hashCode()
      Override hashCode, return imapUid hashcode.
      Overrides:
      hashCode in class Object
      Returns:
      imapUid hashcode
    • removeFlag

      public String removeFlag(String flag)
    • addFlag

      public String addFlag(String flag)
    • setFlags

      public String setFlags(HashSet<String> flags)