Mime4j:DefaultMessageBuilder无法解析mbox内容

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条消息,但为什么所有字段都为空?

zvi*_*fer 2

我发现了问题。

DefaultMessageBuilder无法解析具有 Windows 行分隔符的 mbox 文件\r\n。当用 UNIX 行分隔符替换它们时,\n解析可以工作。

Gmail这是一个关键问题,因为从使用下载的 mbox 文件\r\n