Java 电子邮件解析器

标签 java parsing email

我必须像这样解析电子邮件并找出正文、日期等。任何帮助将不胜感激。

Date:        XXXXX
Reply-To:     XXXXX
Sender:       XXXXX
From:        XXXX
Subject:     Test
In-Reply-To:  XXXX
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="=__Part416ABDAE.0__="
=__Part416ABDAE.0__=
 Content-Type: text/plain; charset=US-ASCII
 Content-Transfer-Encoding: quoted-printable
Test

最佳答案

这是一个正则表达式解决方案:

import java.util.regex.*;

class Test {

    public static void main(String[] args) {

        String input = "Date:        XXXXX\n"
                     + "Reply-To:     XXXXX\n"
                     + "Sender:       XXXXX\n"
                     + "From:        XXXX\n"
                     + "Subject:     Test\n"
                     + "In-Reply-To:  XXXX\n"
                     + "Mime-Version: 1.0\n"
                     + "Content-Type: multipart/alternative; " +
                                 "boundary=\"=__Part416ABDAE.0__=\"";

        Pattern p = Pattern.compile("(.*?):\\s+(.*)");
        Matcher m = p.matcher(input);
        while (m.find()) {
            System.out.println("Key: " + m.group(1));
            System.out.println("Val: " + m.group(2));
            System.out.println();
        }
    }
}

输出:

Key: Date
Val: XXXXX

Key: Reply-To
Val: XXXXX

Key: Sender
Val: XXXXX

Key: From
Val: XXXX

Key: Subject
Val: Test

Key: In-Reply-To
Val: XXXX

Key: Mime-Version
Val: 1.0

Key: Content-Type
Val: multipart/alternative; boundary="=__Part416ABDAE.0__="

关于Java 电子邮件解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7384056/

相关文章:

java - 在 Java 中使用面向方面的编程和注释标记的方法

java - 以m_开头的成员变量命名符合javabean风格?

php - PHP 5.6 上的 Codeigniter 2x 电子邮件类 SMTP SSL 验证错误

c# - 为什么以字节为单位的文件大小不等于每一行的总字节大小?

xml - 解析 Wiki XML 转储 ver0.4 变得很困难

java - 无法使用 mailR 包通过 Outlook.com 发送电子邮件

c# - 在 TLS 加密下使用 DefaultNetworkCredential?

java - 在 Cygwin 上使用 Mallet

java - 拆分列表中的右子字符串

angularjs - 用于 mustache 和其他指令的 AngularDart 指令表达式语法