清理自定义电子邮件系统的电子邮件
Cleaning Emails for Custom Email System
我注意到各种电子邮件客户端 prepend/append 文本到用户编写的文本。例如,Gmail 似乎会在所有电子邮件正文前添加以下文本:
"On Tue, Jul 14, 2015 at 11:41 AM, Jonny Bravo wrote: >"
添加的文本因客户端而异。我对这些信息不感兴趣。我希望能够使用相对跨平台的方法从文本中提取消息正文。有这样的东西存在吗?是根据具体情况清理文本的最佳解决方案吗?
我们在 mailparser.io 开发 "last reply" 过滤器时遇到了同样的问题。通过检查一组正则表达式,我们得到了非常不错的结果。
我们使用的正则表达式是:
'/^(--)$/ms', // -- Signature break
'/^(-----(.+))$/ms', // ----- reply above
'/^(From:(.+))$/ms', // From:
'/^(On\s(.+)wrote:)$/ms', // On DATE, NAME <EMAIL> wrote:
'/^(Sent from(.+))$/ms', // Sent from (iPhone / iPad / Windows Mail ...)
有了这些,您实际上应该可以捕获语言设置为英语的电子邮件客户端产生的大多数情况。
我注意到各种电子邮件客户端 prepend/append 文本到用户编写的文本。例如,Gmail 似乎会在所有电子邮件正文前添加以下文本:
"On Tue, Jul 14, 2015 at 11:41 AM, Jonny Bravo wrote: >"
添加的文本因客户端而异。我对这些信息不感兴趣。我希望能够使用相对跨平台的方法从文本中提取消息正文。有这样的东西存在吗?是根据具体情况清理文本的最佳解决方案吗?
我们在 mailparser.io 开发 "last reply" 过滤器时遇到了同样的问题。通过检查一组正则表达式,我们得到了非常不错的结果。
我们使用的正则表达式是:
'/^(--)$/ms', // -- Signature break
'/^(-----(.+))$/ms', // ----- reply above
'/^(From:(.+))$/ms', // From:
'/^(On\s(.+)wrote:)$/ms', // On DATE, NAME <EMAIL> wrote:
'/^(Sent from(.+))$/ms', // Sent from (iPhone / iPad / Windows Mail ...)
有了这些,您实际上应该可以捕获语言设置为英语的电子邮件客户端产生的大多数情况。