我有一个 java 应用程序,它处理一些用户回复的 gmail 收件箱,处理这些回复并将它们放入数据库。我目前面临一个问题,我想识别电子邮件内容中的用户签名,将其删除并将其余内容存储在数据库中。
我正在将电子邮件读入 MimeMessage,从中获取内容并进行处理。
有没有办法从 MimeMessage 内容或任何可以告诉我电子邮件具有用户签名和它开始的边界的标题中修剪签名?
我已经用谷歌搜索了它,但没有找到任何东西。任何帮助将不胜感激!。谢谢 :)
我有一个 java 应用程序,它处理一些用户回复的 gmail 收件箱,处理这些回复并将它们放入数据库。我目前面临一个问题,我想识别电子邮件内容中的用户签名,将其删除并将其余内容存储在数据库中。
我正在将电子邮件读入 MimeMessage,从中获取内容并进行处理。
有没有办法从 MimeMessage 内容或任何可以告诉我电子邮件具有用户签名和它开始的边界的标题中修剪签名?
我已经用谷歌搜索了它,但没有找到任何东西。任何帮助将不胜感激!。谢谢 :)
访问http://javamail-crypto.sourceforge.net/。它是 Sun 的 JavaMail API 的 API 补充,它使用 S/MIME 和/或 OpenPGP 提供简单的电子邮件加密和解密。
我自己也遇到了这个问题。由于我找不到有关此问题的太多信息,因此我将在此处发布我的答案,即使这个问题已经很老了。
我使用https://stackoverflow.com/a/34689614/4001577中的代码将消息作为 HTML 检索。
可悲的是,没有标记可以告诉我签名从哪里开始,因为它基本上是由邮件软件自动添加的内容。
我所做的基本上是:
private static Element trimSignature(final Element body) {
final Elements anchors = body.getElementsByTag("a");
Element signatureAnchor = null;
for (Element anchor : anchors) {
if(anchor.attr("href").contains("xing.com/companies")) {
signatureAnchor = anchor;
break;
}
}
final Integer signatureElemIndex = signatureAnchor.elementSiblingIndex();
final Elements children = body.children();
for(int i = signatureElemIndex; i < children.size(); i++) {
children.get(i).remove();
}
return body;
}