Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java Email message Parser?

Is anyone familiar with a Java library that helps with parsing the fields (date, subject, from, to) of the email below?

Message-ID: <19815303.1075861029555.JavaMail.ss@kk> Date: Wed, 6 Mar 2010 12:32:20 -0800 (PST) From: [email protected] To: [email protected] Subject: some subject Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-From: one, some <[email protected]> X-To: one X-cc:  X-bcc:  X-Folder: Bob\Inbox X-Origin: Bob-R X-FileName: rbob (Non-Privileged).pst   some message 
like image 960
Kareem Avatar asked Aug 09 '10 22:08

Kareem


2 Answers

JavaMail is an oracle library that provides mail services and mail related services (like parsing conventional & MIME messages) in the javax.mail package. Additionally Apache has a Commons Email library for mail handling.

In the JavaMail api, a simple way to parse a string containing an email message (which may or may not be explicitly MIME) would be as follows

String content = ... Session s = Session.getInstance(new Properties()); InputStream is = new ByteArrayInputStream(content.getBytes()); MimeMessage message = new MimeMessage(s, is); 

and parsing the headers could be done like this

message.getAllHeaderLines(); for (Enumeration<Header> e = message.getAllHeaders(); e.hasMoreElements();) {     Header h = e.nextElement();     h.getName();     h.getValue(); } 
like image 182
Jherico Avatar answered Oct 07 '22 03:10

Jherico


I have had problems with JavaMail (it fails to parse some email messages that it should).

I have had much better results with Mime4J.

like image 32
Adam Gent Avatar answered Oct 07 '22 01:10

Adam Gent