【发布时间】:2014-03-19 05:09:18
【问题描述】:
我的 Rails 应用程序通过将传入的电子邮件分成多行来处理它们。这是我目前在正文的纯文本版本上使用的:lines = email.body.split("\n")
除非句子长于约 74 个字符,否则此方法效果很好,因为大多数电子邮件客户端会自动为每个 RFC 2822 添加换行符。
电子邮件示例:https://gist.github.com/marckohlbrugge/39c17b928eb17d330d63
查看纯文本部分,似乎无法区分用户添加的换行符与电子邮件客户端添加的换行符。您可以忽略第 75 位发生的任何换行符,但我认为可能会出现误报。 (我可能是错的。)
HTML 部分包含我们需要的所有信息,但我不确定是否有通用的方法来处理它。用换行符替换每个div 和br 然后剥离所有其他HTML 元素就够了吗?那么所有其他块元素标签呢?样式为块元素的内联元素呢?如果电子邮件没有 HTML 部分怎么办?
我确实在 Convert HTML to plain text (with inclusion of
s) 中找到了一些有趣的代码示例,但是用换行符替换 html 标记列表似乎不是一个完整(详尽)的解决方案。
【问题讨论】:
标签: ruby-on-rails ruby regex email