如何删除Begin转发的消息:rails 3应用程序中电子邮件正文的一部分



我收到了转发到rails 3应用程序的电子邮件,工作正常。

但在转发的电子邮件中,它在顶部包括以下消息,例如:

Begin forwarded message:
From: roger rabbit <sales@mysite.com>
Date: 23 May 2011 13:52:08 GMT+01:00
To: sam@yoursite.com
Subject: Hi threre
Dear Mike 
Yes please do the work for me!

此格式会根据发送邮件的电子邮件客户端而更改。

我想把这个从身体上去掉,这样我就可以显示转发的消息,比如:

Dear Mike 
Yes please do the work for me!

最好的方法是什么,因为我知道我可以为这个特定的格式做这件事,但我需要它更通用/更聪明。

我应该使用一些gem/lib吗?

任何帮助都会很棒。

感谢Rick

我还没有听说过有什么宝石或库可以帮助实现这一点,但我的第一个尝试是:

  1. 处理客户端之间不同的"开始转发消息:"可能是一个棘手的问题
  2. 处理电子邮件标题应该更容易,因为它们应该是可预测的

对于第1条:我猜在大多数(希望是所有)情况下,您都希望丢弃"From:"行以上的任何行。因此,找到"From:"所在的行号(可能通过regex),删除上面的所有行。这将避免获得不同电子邮件客户端会想到的"开始转发消息"的所有变体。

对于第2个:使用正则表达式检查电子邮件头信息。检查与行首相关的"From:"或"To:"等内容,如果匹配则删除该行。

我会尽可能多地获取测试用例(例如转发的电子邮件),以确保您的系统正常工作。一旦你有了一些具体的例子,我们可能会提供进一步的帮助。

我认为应该使用String类的split方法。试试这样的东西:

例如,一个-变量包含您的消息。

b = a.split("nrn", 3) maybe b = a.split("nn", 3)

他将根据分隔符(在您的情况下为\n\n)将您的文件划分为子字符串,并返回这些子字符串的数组。

所以,最后你应该简单地做以下事情:

c = b[2].to_s 
puts c => "Dear Mike nnYes please do the work for me!n"

这不是一个好的解决方案,但它应该可以在

中工作

相关内容

  • 没有找到相关文章

最新更新