Class Message.Builder

    • Constructor Detail

      • Builder

        private Builder()
    • Method Detail

      • of

        public static Message.Builder of​(java.io.InputStream is)
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • setField

        public Message.Builder setField​(Field field)
        Description copied from class: AbstractEntityBuilder
        Sets or replaces a field. This method is useful for header fields such as Subject or Message-ID that should not occur more than once in a message. If this builder does not already contain a header field of the same name as the given field then it is added to the end of the list of fields (same behavior as AbstractEntityBuilder.addField(org.apache.james.mime4j.stream.Field)). Otherwise the first occurrence of a field with the same name is replaced by the given field and all further occurrences are removed.
        Overrides:
        setField in class AbstractEntityBuilder
        Parameters:
        field - the field to set.
      • setContentDisposition

        public Message.Builder setContentDisposition​(java.lang.String dispositionType)
        Description copied from class: AbstractEntityBuilder
        Sets content disposition of this message to the specified disposition type. No filename, size or date parameters are included in the content disposition.
        Overrides:
        setContentDisposition in class AbstractEntityBuilder
        Parameters:
        dispositionType - disposition type value (usually inline or attachment).
      • setContentDisposition

        public Message.Builder setContentDisposition​(java.lang.String dispositionType,
                                                     java.lang.String filename)
        Description copied from class: AbstractEntityBuilder
        Sets content disposition of this message to the specified disposition type and filename. No size or date parameters are included in the content disposition.
        Overrides:
        setContentDisposition in class AbstractEntityBuilder
        Parameters:
        dispositionType - disposition type value (usually inline or attachment).
        filename - filename parameter value or null if the parameter should not be included.
      • setContentDisposition

        public Message.Builder setContentDisposition​(java.lang.String dispositionType,
                                                     java.lang.String filename,
                                                     long size)
        Description copied from class: AbstractEntityBuilder
        Sets content disposition of this message to the specified values. No date parameters are included in the content disposition.
        Overrides:
        setContentDisposition in class AbstractEntityBuilder
        Parameters:
        dispositionType - disposition type value (usually inline or attachment).
        filename - filename parameter value or null if the parameter should not be included.
        size - size parameter value or -1 if the parameter should not be included.
      • setContentDisposition

        public Message.Builder setContentDisposition​(java.lang.String dispositionType,
                                                     java.lang.String filename,
                                                     long size,
                                                     java.util.Date creationDate,
                                                     java.util.Date modificationDate,
                                                     java.util.Date readDate)
        Description copied from class: AbstractEntityBuilder
        Sets content disposition of this message to the specified values.
        Overrides:
        setContentDisposition in class AbstractEntityBuilder
        Parameters:
        dispositionType - disposition type value (usually inline or attachment).
        filename - filename parameter value or null if the parameter should not be included.
        size - size parameter value or -1 if the parameter should not be included.
        creationDate - creation-date parameter value or null if the parameter should not be included.
        modificationDate - modification-date parameter value or null if the parameter should not be included.
        readDate - read-date parameter value or null if the parameter should not be included.
      • setBody

        public Message.Builder setBody​(java.lang.String text,
                                       java.nio.charset.Charset charset)
                                throws java.io.IOException
        Sets text of this message with the charset.
        Parameters:
        text - the text.
        charset - the charset of the text.
        Throws:
        java.io.IOException
      • setBody

        public Message.Builder setBody​(java.lang.String text,
                                       java.lang.String subtype,
                                       java.nio.charset.Charset charset)
                                throws java.io.IOException
        Sets text of this message with the given MIME subtype and charset.
        Parameters:
        text - the text.
        charset - the charset of the text.
        subtype - the text subtype (e.g. "plain", "html" or "xml").
        Throws:
        java.io.IOException
      • setBody

        public Message.Builder setBody​(byte[] bin,
                                       java.lang.String mimeType)
                                throws java.io.IOException
        Sets binary content of this message with the given MIME type.
        Parameters:
        bin - the body.
        mimeType - the MIME media type of the specified body ("type/subtype").
        Throws:
        java.io.IOException
      • getMessageId

        public java.lang.String getMessageId()
        Returns the value of the Message-ID header field of this message or null if it is not present.
        Returns:
        the identifier of this message.
      • generateMessageId

        public Message.Builder generateMessageId​(java.lang.String hostname)
        Generates and sets message ID for this message.
        Parameters:
        hostname - host name to be included in the identifier or null if no host name should be included.
      • setMessageId

        public Message.Builder setMessageId​(java.lang.String messageId)
        Sets message ID for this message.
        Parameters:
        messageId - the message ID.
      • getSubject

        public java.lang.String getSubject()
        Returns the (decoded) value of the Subject header field of this message or null if it is not present.
        Returns:
        the subject of this message.
      • setSubject

        public Message.Builder setSubject​(java.lang.String subject)
        Sets Subject header field for this message. The specified string may contain non-ASCII characters, in which case it gets encoded as an 'encoded-word' automatically.
        Parameters:
        subject - subject to set or null to remove the subject header field.
      • getDate

        public java.util.Date getDate()
        Returns the value of the Date header field of this message as Date object or null if it is not present.
        Returns:
        the date of this message.
      • setDate

        public Message.Builder setDate​(java.util.Date date)
        Sets Date header field for this message. This method uses the default TimeZone of this host to encode the specified Date object into a string.
        Parameters:
        date - date to set or null to remove the date header field.
      • setDate

        public Message.Builder setDate​(java.util.Date date,
                                       java.util.TimeZone zone)
        Sets Date header field for this message. The specified TimeZone is used to encode the specified Date object into a string.
        Parameters:
        date - date to set or null to remove the date header field.
        zone - a time zone.
      • getSender

        public Mailbox getSender()
        Returns the value of the Sender header field of this message as Mailbox object or null if it is not present.
        Returns:
        the sender of this message.
      • setSender

        public Message.Builder setSender​(Mailbox sender)
        Sets Sender header field of this message to the specified mailbox address.
        Parameters:
        sender - address to set or null to remove the header field.
      • setSender

        public Message.Builder setSender​(java.lang.String sender)
                                  throws ParseException
        Sets Sender header field of this message to the specified mailbox address.
        Parameters:
        sender - address to set or null to remove the header field.
        Throws:
        ParseException
      • getFrom

        public MailboxList getFrom()
        Returns the value of the From header field of this message as MailboxList object or null if it is not present.
        Returns:
        value of the from field of this message.
      • setFrom

        public Message.Builder setFrom​(Mailbox from)
        Sets From header field of this message to the specified mailbox address.
        Parameters:
        from - address to set or null to remove the header field.
      • setFrom

        public Message.Builder setFrom​(java.lang.String from)
                                throws ParseException
        Sets From header field of this message to the specified mailbox address.
        Parameters:
        from - address to set or null to remove the header field.
        Throws:
        ParseException
      • setFrom

        public Message.Builder setFrom​(Mailbox... from)
        Sets From header field of this message to the specified mailbox addresses.
        Parameters:
        from - addresses to set or null or no arguments to remove the header field.
      • setFrom

        public Message.Builder setFrom​(java.lang.String... from)
                                throws ParseException
        Sets From header field of this message to the specified mailbox addresses.
        Parameters:
        from - addresses to set or null or no arguments to remove the header field.
        Throws:
        ParseException
      • setFrom

        public Message.Builder setFrom​(java.util.Collection<Mailbox> from)
        Sets From header field of this message to the specified mailbox addresses.
        Parameters:
        from - addresses to set or null or an empty collection to remove the header field.
      • getTo

        public AddressList getTo()
        Returns the value of the To header field of this message as AddressList object or null if it is not present.
        Returns:
        value of the to field of this message.
      • setTo

        public Message.Builder setTo​(Address to)
        Sets To header field of this message to the specified address.
        Parameters:
        to - address to set or null to remove the header field.
      • setTo

        public Message.Builder setTo​(java.lang.String to)
                              throws ParseException
        Sets To header field of this message to the specified address.
        Parameters:
        to - address to set or null to remove the header field.
        Throws:
        ParseException
      • setTo

        public Message.Builder setTo​(Address... to)
        Sets To header field of this message to the specified addresses.
        Parameters:
        to - addresses to set or null or no arguments to remove the header field.
      • setTo

        public Message.Builder setTo​(java.lang.String... to)
                              throws ParseException
        Sets To header field of this message to the specified addresses.
        Parameters:
        to - addresses to set or null or no arguments to remove the header field.
        Throws:
        ParseException
      • setTo

        public Message.Builder setTo​(java.util.Collection<? extends Address> to)
        Sets To header field of this message to the specified addresses.
        Parameters:
        to - addresses to set or null or an empty collection to remove the header field.
      • getCc

        public AddressList getCc()
        Returns the value of the Cc header field of this message as AddressList object or null if it is not present.
        Returns:
        value of the cc field of this message.
      • setCc

        public Message.Builder setCc​(Address cc)
        Sets Cc header field of this message to the specified address.
        Parameters:
        cc - address to set or null to remove the header field.
      • setCc

        public Message.Builder setCc​(Address... cc)
        Sets Cc header field of this message to the specified addresses.
        Parameters:
        cc - addresses to set or null or no arguments to remove the header field.
      • setCc

        public Message.Builder setCc​(java.util.Collection<? extends Address> cc)
        Sets Cc header field of this message to the specified addresses.
        Parameters:
        cc - addresses to set or null or an empty collection to remove the header field.
      • getBcc

        public AddressList getBcc()
        Returns the value of the Bcc header field of this message as AddressList object or null if it is not present.
        Returns:
        value of the bcc field of this message.
      • setBcc

        public Message.Builder setBcc​(Address bcc)
        Sets Bcc header field of this message to the specified address.
        Parameters:
        bcc - address to set or null to remove the header field.
      • setBcc

        public Message.Builder setBcc​(Address... bcc)
        Sets Bcc header field of this message to the specified addresses.
        Parameters:
        bcc - addresses to set or null or no arguments to remove the header field.
      • setBcc

        public Message.Builder setBcc​(java.util.Collection<? extends Address> bcc)
        Sets Bcc header field of this message to the specified addresses.
        Parameters:
        bcc - addresses to set or null or an empty collection to remove the header field.
      • getReplyTo

        public AddressList getReplyTo()
        Returns the value of the Reply-To header field of this message as AddressList object or null if it is not present.
        Returns:
        value of the reply to field of this message.
      • setReplyTo

        public Message.Builder setReplyTo​(Address replyTo)
        Sets Reply-To header field of this message to the specified address.
        Parameters:
        replyTo - address to set or null to remove the header field.
      • setReplyTo

        public Message.Builder setReplyTo​(Address... replyTo)
        Sets Reply-To header field of this message to the specified addresses.
        Parameters:
        replyTo - addresses to set or null or no arguments to remove the header field.
      • setReplyTo

        public Message.Builder setReplyTo​(java.util.Collection<? extends Address> replyTo)
        Sets Reply-To header field of this message to the specified addresses.
        Parameters:
        replyTo - addresses to set or null or an empty collection to remove the header field.
      • parse

        public Message.Builder parse​(java.io.InputStream is)
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • getMailbox

        private Mailbox getMailbox​(java.lang.String fieldName)
      • getMailboxList

        private MailboxList getMailboxList​(java.lang.String fieldName)
      • setMailboxList

        private Message.Builder setMailboxList​(java.lang.String fieldName,
                                               Mailbox... mailboxes)
      • setMailboxList

        private Message.Builder setMailboxList​(java.lang.String fieldName,
                                               java.util.Collection<Mailbox> mailboxes)
      • getAddressList

        private AddressList getAddressList​(java.lang.String fieldName)
      • setAddressList

        private Message.Builder setAddressList​(java.lang.String fieldName,
                                               Address... addresses)
      • setAddressList

        private Message.Builder setAddressList​(java.lang.String fieldName,
                                               java.util.Collection<? extends Address> addresses)