Java Email Message Parser?
Quelqu'un connaît-il une bibliothèque Java qui aide à analyser les champs (date, sujet, de, à) de l'e-mail ci-dessous?
Message-ID: <19815303.1075861029555.JavaMail.ss@kk>
Date: Wed, 6 Mar 2010 12:32:20 -0800 (PST)
From: someone@someotherplace.com
To: someone@someplace.com
Subject: some subject
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-From: one, some <some.one@someotherplace.com>
X-To: one
X-cc:
X-bcc:
X-Folder: BobInbox
X-Origin: Bob-R
X-FileName: rbob (Non-Privileged).pst
some message
27
demandé sur
Kareem
2010-08-10 02:27:06
3 réponses
JavaMail est une bibliothèque oracle qui fournit des services de messagerie et des services liés au courrier (comme l'analyse des messages conventionnels et MIME) dans javax.paquet de courrier. De plus, Apache a une bibliothèqueCommons Email pour la gestion du courrier.
Dans L'api JavaMail, un moyen simple d'analyser une chaîne contenant un message électronique (qui peut ou non être explicitement MIME) serait le suivant
String content = ...
Session s = Session.getInstance(new Properties());
InputStream is = new ByteArrayInputStream(content.getBytes());
MimeMessage message = new MimeMessage(s, is);
Et l'analyse des en-têtes pourrait être faite comme ceci
message.getAllHeaderLines();
for (Enumeration<Header> e = message.getAllHeaders(); e.hasMoreElements();) {
Header h = e.nextElement();
h.getName();
h.getValue();
}
33
répondu
Jherico
2017-11-01 11:29:32
Je vous suggère d'utiliser email-mime-analyseur,
Exemple de code Suivant vous donne toutes les informations dont vous avez besoin:
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<Attachment> 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();
4
répondu
Ashish Sharma
2016-10-06 06:50:07