zvi*_*fer 5 java apache parsing mbox mime4j
我已经mime4j从中下载了0.8.0快照subversion并使用它构建了它maven.我生成的相关罐子可以在这里找到.
现在我尝试从测试中解析玩具mbox文件mime4j.
我使用这个示例代码.简述:
final File mbox = new File("c:\\mbox.rlug");
int count = 0;
for (CharBufferWrapper message : MboxIterator.fromFile(mbox).charset(ENCODER.charset()).build()) {
System.out.println(messageSummary(message.asInputStream(ENCODER.charset())));
count++;
}
System.out.println("Found " + count + " messages");
Run Code Online (Sandbox Code Playgroud)
+
private static String messageSummary(InputStream messageBytes) throws IOException, MimeException {
MessageBuilder builder = new DefaultMessageBuilder();
Message message = builder.parseMessage(messageBytes);
return String.format("\nMessage %s \n" +
"Sent by:\t%s\n" +
"To:\t%s\n",
message.getSubject(),
message.getSender(),
message.getTo());
}
Run Code Online (Sandbox Code Playgroud)
输出是:
消息null发送者:null To:null
消息null发送者:null To:null
消息null发送者:null To:null
消息null发送者:null To:null
消息null发送者:null To:null
找到5条消息
确实有5条消息,但为什么所有字段都为空?
我发现了问题。
DefaultMessageBuilder无法解析具有 Windows 行分隔符的 mbox 文件\r\n。当用 UNIX 行分隔符替换它们时,\n解析可以工作。
Gmail这是一个关键问题,因为从使用下载的 mbox 文件\r\n。