Parser del messaggio e-mail Java?

Qualcuno ha familiarità con una libreria Java che aiuta a analizzare i campi (data, object, da, a) della mail qui sotto?

Message-ID:  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  X-To: one X-cc: X-bcc: X-Folder: Bob\Inbox X-Origin: Bob-R X-FileName: rbob (Non-Privileged).pst some message 

JavaMail è una libreria Oracle che fornisce servizi di posta e servizi relativi alla posta (come l’analisi di messaggi convenzionali e MIME) nel pacchetto javax.mail. Inoltre Apache ha una libreria di e-mail per la gestione della posta.

Nel JavaMail api, un modo semplice per analizzare una stringa contenente un messaggio di posta elettronica (che può essere o non essere esplicitamente MIME) sarebbe il seguente

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

e analizzare le intestazioni potrebbe essere fatto in questo modo

 message.getAllHeaderLines(); for (Enumeration
e = message.getAllHeaders(); e.hasMoreElements();) { Header h = e.nextElement(); h.getName(); h.getValue(); }

Ho avuto problemi con JavaMail (non riesce ad analizzare alcuni messaggi di posta elettronica che dovrebbe).

Ho avuto risultati molto migliori con Mime4J .

Ti suggerirei di usare email-mime-parser ,

Il seguente codice di esempio ti fornisce tutte le informazioni rilevanti di cui hai bisogno:

 ContentHandler contentHandler = new CustomContentHandler(); MimeConfig mime4jParserConfig = new MimeConfig(); BodyDescriptorBuilder bodyDescriptorBuilder = new DefaultBodyDescriptorBuilder(); MimeStreamParser mime4jParser = new MimeStreamParser(mime4jParserConfig,DecodeMonitor.SILENT,bodyDescriptorBuilder); mime4jParser.setContentDecoding(true); mime4jParser.setContentHandler(contentHandler); InputStream mailIn = 'Provide email mime stream here'; mime4jParser.parse(mailIn); Email email = ((CustomContentHandler) contentHandler).getEmail(); List attachments = email.getAttachments(); Attachment calendar = email.getCalendarBody(); Attachment htmlBody = email.getHTMLEmailBody(); Attachment plainText = email.getPlainTextEmailBody(); String to = email.getToEmailHeaderValue(); String cc = email.getCCEmailHeaderValue(); String from = email.getFromEmailHeaderValue();