Java 电子邮件解析器?

2022-09-01 10:37:53

有没有人熟悉Java库,它有助于解析下面电子邮件的字段(日期,主题,发件人,到)?

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: Bob\Inbox
X-Origin: Bob-R
X-FileName: rbob (Non-Privileged).pst


some message

答案 1

JavaMail是一个oracle库,在javax.mail包中提供邮件服务和邮件相关服务(如解析传统和MIME消息)。此外,Apache还有一个用于邮件处理的Commons Email库。

在JavaMail api中,解析包含电子邮件的字符串(可能是也可能不是显式MIME)的简单方法如下

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

解析标头可以像这样完成

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

答案 2

我在JavaMail上遇到了问题(它无法解析一些它应该解析的电子邮件)。

我在Mime4J上取得了更好的结果。


推荐