剥离签名和电子邮件回复

Jim*_*ath 44 ruby email parsing

我目前正在开发一个系统,允许用户回复发出(叹息)的通知电子邮件.

我需要删除回复和签名,以便我留下回复的实际内容,没有任何噪音.

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

小智 42

如果您的系统是内部和/或您的回复格式有限,那么可以做得很好.以下是我们为trac票据的电子邮件回复设置的过滤器:

删除所有文字后包括:

  1. 等于的行'-- \n'(标准电子邮件签名分隔符)
  2. 相等的线'--\n'(人们经常忘记sig分隔符中的空格;这不是常见的外部sig)
  3. '-----Original Message-----'(MS Outlook默认值)开头的行
  4. '________________________________' 开头的行(32个下划线,再次显示Outlook)
  5. 'On '' wrote:\n'(OS X Mail.app默认值)开头和结尾的行
  6. 'From: '(故障安全四Outlook和其他一些回复格式)开头的行
  7. 以...开头的行 'Sent from my iPhone'
  8. 以...开头的行 'Sent from my BlackBerry'

数字3和4是'以'开头'而不是'等于',因为有时用户会在意外时挤压线.

我们试图更加自由地剥离回复,因为它更令人烦恼(对我们来说)有回复垃圾,而不是纠正丢失的文本.

任何人都有其他想要分享的格式吗?

  • gmail使用`<div class ="gmail_extra"> ... </ div>`和yahoo:`<div class ="yahoo_quoted"> ... </ div>`作为引用部分(包括"On ..的内容) :") (6认同)

Dre*_*ewB 10

查看email_reply_parser gem - https://github.com/github/email_reply_parser.它处理这个问题做得很好.


Bri*_*new 8

我不相信你能可靠地做到这一点(过去的签名'--'但我不再看到了).也许你最好让人们在文本标题之间进行回复,然后简单地从中删除回复?它不优雅,但也许更可靠.

例如

REPLY BETWEEN HERE -->

AND HERE -->
Run Code Online (Sandbox Code Playgroud)

因此,您只需查找上面所需的标题,然后选择其中的内容.

  • 或者甚至只是:回复上面这条线------------------------------------ (3认同)