ruby-从电子邮件中删除签名和回复

我目前正在使用一个系统,该系统允许用户回复已发出(叹气)的通知电子邮件。

我需要删除答复和签名,以便我得到答复的实际内容,而不会产生任何杂音。

有人对最佳方法有任何建议吗?

Jim Neath asked 2020-08-06T16:24:34Z
8个解决方案
42 votes

如果您的系统是内部系统和/或答复格式数量有限,则可以做得很好。 以下是我们为跟踪票务的电子邮件回复设置的过滤器:

在以下所有文字之后加上以下内容:

  1. 等于'Sent from my BlackBerry'的行(标准电子邮件sig分隔符)
  2. 等于'Sent from my BlackBerry'的行(人们通常会忘记sig分隔符中的空格;这在sig外部并不常见)
  3. 'Sent from my BlackBerry'开头的行(MS Outlook默认)
  4. 'Sent from my BlackBerry''开头的行(下划线为32,再次显示Outlook)
  5. 'Sent from my BlackBerry'开头并以' wrote:\n'结尾的行(默认为OS X Mail.app)
  6. 'Sent from my BlackBerry'开头的行(故障安全四种Outlook和其他一些答复格式)
  7. 'Sent from my BlackBerry'开头的行
  8. Lines that begin with 'Sent from my BlackBerry'

数字3和4是“开始于”而不是“等于”,因为有时用户会在偶然的情况下将线挤压在一起。

我们尝试在删除回复上更加自由,因为(对我们来说)拥有回复垃圾比解决改正丢失的文本要麻烦得多。

是否有人想共享其他格式?

onecreativenerd answered 2020-08-06T16:26:30Z
10 votes

查看email_reply_parser gem-[https://github.com/github/email_reply_parser]。 在处理此问题方面做得很好。

DrewB answered 2020-08-06T16:26:51Z
8 votes

我不相信您可以可靠地做到这一点(以前以'--'开头的签名,但现在我不再看到了)。 也许您最好让别人在文本标题之间进行答复,然后从中剥离答复? 它不优雅,但也许更可靠。

例如

REPLY BETWEEN HERE -->

AND HERE -->

因此,您只需在上面查找所需的标头,然后使用两者之间的内容即可。

Brian Agnew answered 2020-08-06T16:27:20Z
4 votes

如果您需要功能强大的工具,并且不介意阅读学术出版物,则可以查看以下内容:

  • 学习从电子邮件中提取签名和回复行

这是其中一位作者的主页,其中包含更多信息和一些下载内容:

  • Vitor R. Carvalho-软件和数据集-(Vitor Carvalho)
mkopala answered 2020-08-06T16:27:53Z
1 votes

除检测__或-之外,仅可用于签名的方法是测试发件人的名字和/或姓氏是否在短行上(〜最多包含3至4个字)。

发件人姓名通常在原始电子邮件标题上,通常在电子邮件地址旁边,例如: From: John Doe <jdoe@provider.com>

这是基于这样的假设,即您很少在电子邮件中写上自己的名字,如果这样做,则可能用很长的句子。

当然会有一些误报,但是根据您的操作,这可能不是一个大问题(我们使用它来将带引号的文本和签名折叠为…gmail样式的按钮,因此过度检测不会最终导致丢失 任何内容,只是放错了地方)。

qnilab answered 2020-08-06T16:28:27Z
0 votes

如果您可以假定这些电子邮件为纯文本格式,则仅将以“>”开头的行作为答复,而“-”行应界定签名。 但是这些假设可能行不通,因为并非互联网上的所有人都使用符合规则的软件。

samuil answered 2020-08-06T16:28:47Z
0 votes

有一个非常不错的PHP库专门用于电子邮件解析

[HTTP://William读ran的.放入/email reply parser/]

[HTTPS://GitHub.com/will读ran的/email reply parser]

kachar answered 2020-08-06T16:29:16Z
-2 votes

推荐的签名定界符为“-\ n”。 如果人们遵循此建议,则剥离签名应该很容易。

answered 2020-08-06T16:29:36Z
translate from https://stackoverflow.com:/questions/1372694/strip-signatures-and-replies-from-emails