使用java删除电子邮件页脚和签名

使用java删除电子邮件页脚和签名,java,email,email-parsing,Java,Email,Email Parsing,嗨,有人能告诉我如何从邮件中删除页脚吗。 我只需要存储电子邮件的正文并删除其他内容,无论是免责声明还是页脚。您可以使用正则表达式 假设电子邮件看起来像 String emailContents = "AAA this is the email header BBB\n" + "This is the body\n" + "CCC this is the email footer DDD"; 你可以这样做: Pattern pattern = Pattern.compi

嗨,有人能告诉我如何从邮件中删除页脚吗。
我只需要存储电子邮件的正文并删除其他内容,无论是免责声明还是页脚。

您可以使用正则表达式

假设电子邮件看起来像

String emailContents = 
    "AAA this is the email header BBB\n" +
    "This is the body\n" +
    "CCC this is the email footer DDD";
你可以这样做:

Pattern pattern = Pattern.compile("AAA.*BBB(.*)CCC.*DDD");
Matcher matcher = pattern.matcher(emailContents);
if (!matcher.matches()) throw new Exception("Invalid email");
String emailBody = matcher.group(1);
System.out.println(emailBody); // prints 'This is the body'

请注意,
*
多次匹配任何字符,
表示一个字符。完整正则表达式语法

电子邮件页脚有一个标准标记-请参阅

即:

--

您可以使用正则表达式来查找它,例如

    Pattern pattern = Pattern.compile("^-- $", Pattern.MULTILINE);
    Matcher m = pattern.matcher(emailBodyText);
    if (m.find()) {
        emailBodyText = emailBodyText.substring(0, m.start());
    }
可悲的是,如今它没有得到广泛应用。例如,Gmail不应用它

对于gmail消息,您可以在电子邮件的html中查找数据smartmail=“gmail\u签名”

您可能必须为每个主要电子邮件系统实现自定义清理代码