1

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

4

2 回答 2

0

电子邮件页脚应该有一个标准标记 - 请参阅https://en.wikipedia.org/wiki/Signature_block#Standard_delimiter

这是:

--

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

    Pattern pattern = Pattern.compile("^-- $", Pattern.MULTILINE);
    Matcher m = pattern.matcher(emailBodyText);
    if (m.find()) {
        emailBodyText = emailBodyText.substring(0, m.start());
    }

可悲的是,这些天它没有被广泛使用。例如,Gmail 不应用它。

对于 gmail 消息 - 您可以在电子邮件的 html 中查找 data-smartmail="gmail_signature"。

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

于 2020-07-14T21:09:31.000 回答
-1

您可以使用正则表达式。

假设电子邮件看起来像

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'

请注意,.*多次匹配任何字符并且()代表一个。完整的正则表达式语法在这里

于 2013-11-07T09:54:00.353 回答