Parser di messaggi di posta elettronica Java?

2022-07-29 12:00:42

Qualcuno ha familiarità con una libreria Java che aiuta ad analizzare i campi (data, oggetto, da, a) dell'email di seguito?

Message-ID: <[email protected]>
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

- Kareem

Source
Risposta


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

    Nell'API JavaMail, un modo semplice per analizzare una stringa contenente un messaggio di posta elettronica (che può essere o meno 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 l'analisi delle intestazioni potrebbe essere eseguita in questo modo

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