Example usage for org.apache.commons.mail.util MimeMessageParser getMimeMessage

List of usage examples for org.apache.commons.mail.util MimeMessageParser getMimeMessage

Introduction

In this page you can find the example usage for org.apache.commons.mail.util MimeMessageParser getMimeMessage.

Prototype

public MimeMessage getMimeMessage() 

Source Link

Usage

From source file:info.debatty.java.datasets.enron.Email.java

Email(final String raw, final String mailbox) throws MessagingException, Exception {
    this.raw = raw;
    String[] strings = mailbox.split(File.separator, 2);
    this.user = strings[0];
    this.mailbox = strings[1];

    Session s = Session.getDefaultInstance(new Properties());
    InputStream is = new ByteArrayInputStream(raw.getBytes());
    MimeMessage message = new MimeMessage(s, is);
    MimeMessageParser parser = new MimeMessageParser(message);

    from = parser.getFrom();/*from  www  . j  av a2 s  . c  o  m*/
    to = addressToString(parser.getTo());
    cc = addressToString(parser.getCc());
    bcc = addressToString(parser.getBcc());
    subject = parser.getSubject();
    content = parser.getPlainContent();
    message_id = parser.getMimeMessage().getMessageID();

}

From source file:com.garethahealy.elasticpostman.scraper.entities.EmailContent.java

public void parse() throws Exception {
    Session session = Session.getDefaultInstance(new Properties());
    MimeMessage message = MimeMessageUtils.createMimeMessage(session, raw);
    MimeMessageParser mimeMessageParser = new MimeMessageParser(message);
    MimeMessageParser parsed = mimeMessageParser.parse();

    this.from = parsed.getFrom();
    this.subject = parsed.getSubject();
    this.content = parsed.getPlainContent();
    this.contentIds = parsed.getContentIds();
    this.sentDate = new DateTime(parsed.getMimeMessage().getSentDate());
    this.headers = new HashMap<String, String>();

    @SuppressWarnings("unchecked")
    EnumerationIterator it = new EnumerationIterator(parsed.getMimeMessage().getAllHeaders());
    while (it.hasNext()) {
        Object current = it.next();
        if (current instanceof Header) {
            Header header = (Header) current;
            if (includeHeader(header.getName())) {
                headers.put(header.getName(), sanatizeValue(header.getName(), header.getValue()));
            }// w ww  . j av a  2  s  .c o m
        }
    }

}

From source file:org.apache.juddi.v3.tck.UDDI_090_Smtp_ExternalTest.java

/**
 * gets all current messages from the mail server and returns the number
 * of messages containing the string, messages containing the string are
 * deleted from the mail server String is the body of each message
 *
 * @return number of matching and deleted messages
 * @param contains a string to search for
 *//* w  ww .jav a2s  . co  m*/
private static int fetchMail(String contains) {

    //final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

    /* Set the mail properties */
    Properties properties = TckPublisher.getProperties();
    // Set manual Properties

    int found = 0;
    Session session = Session.getDefaultInstance(properties, null);
    Store store = null;
    try {
        store = session.getStore("pop3");

        store.connect(properties.getProperty("mail.pop3.host"),
                Integer.parseInt(properties.getProperty("mail.pop3.port", "110")),
                properties.getProperty("mail.pop3.username"), properties.getProperty("mail.pop3.password"));
        /* Mention the folder name which you want to read. */
        // inbox = store.getDefaultFolder();
        // inbox = inbox.getFolder("INBOX");
        Folder inbox = store.getFolder("INBOX");

        /* Open the inbox using store. */
        inbox.open(Folder.READ_WRITE);

        Message messages[] = inbox.getMessages();

        for (int i = 0; i < messages.length; i++) {

            MimeMessageParser p = new MimeMessageParser(new MimeMessage(session, messages[i].getInputStream()));
            Enumeration allHeaders = p.getMimeMessage().getAllHeaders();
            while (allHeaders.hasMoreElements()) {
                Object j = allHeaders.nextElement();
                if (j instanceof javax.mail.Header) {
                    javax.mail.Header msg = (javax.mail.Header) j;
                    logger.info("XML as message header is " + msg.getValue());
                    if (msg.getValue().contains(contains)) {
                        //found it
                        messages[i].setFlag(Flags.Flag.DELETED, true);
                        found++;
                    }
                }
            }
            for (int k = 0; k < p.getAttachmentList().size(); k++) {
                InputStream is = p.getAttachmentList().get((k)).getInputStream();
                QuotedPrintableCodec qp = new QuotedPrintableCodec();
                // If "is" is not already buffered, wrap a BufferedInputStream
                // around it.
                if (!(is instanceof BufferedInputStream)) {
                    is = new BufferedInputStream(is);
                }
                int c;
                StringBuilder sb = new StringBuilder();
                System.out.println("Message : ");
                while ((c = is.read()) != -1) {
                    sb.append(c);
                    System.out.write(c);
                }
                is.close();
                String decoded = qp.decode(sb.toString());
                logger.info("decode message is " + decoded);
                if (decoded.contains(contains)) {
                    //found it
                    messages[i].setFlag(Flags.Flag.DELETED, true);
                    found++;
                }
            }

        }
        inbox.close(true);

    } catch (Exception ex) {
        ex.printStackTrace();
    } finally {
        if (store != null) {
            try {
                store.close();
            } catch (Exception ex) {
            }
        }
    }
    return found;
}