【问题标题】:Undo email wordwrap line breaks in Ruby在 Ruby 中撤消电子邮件自动换行符
【发布时间】:2014-03-19 05:09:18
【问题描述】:

我的 Rails 应用程序通过将传入的电子邮件分成多行来处理它们。这是我目前在正文的纯文本版本上使用的:lines = email.body.split("\n")

除非句子长于约 74 个字符,否则此方法效果很好,因为大多数电子邮件客户端会自动为每个 RFC 2822 添加换行符。

电子邮件示例:https://gist.github.com/marckohlbrugge/39c17b928eb17d330d63

查看纯文本部分,似乎无法区分用户添加的换行符与电子邮件客户端添加的换行符。您可以忽略第 75 位发生的任何换行符,但我认为可能会出现误报。 (我可能是错的。)

HTML 部分包含我们需要的所有信息,但我不确定是否有通用的方法来处理它。用换行符替换每个divbr 然后剥离所有其他HTML 元素就够了吗?那么所有其他块元素标签呢?样式为块元素的内联元素呢?如果电子邮件没有 HTML 部分怎么办?

我确实在 Convert HTML to plain text (with inclusion of
s)
中找到了一些有趣的代码示例,但是用换行符替换 html 标记列表似乎不是一个完整(详尽)的解决方案。

【问题讨论】:

    标签: ruby-on-rails ruby regex email


    【解决方案1】:

    是否值得关注this mail library 之类的东西,因为他们可能已经考虑过边缘情况? ;)

    【讨论】:

    • 是的,我查看了其中的一些库,但没有找到。
    猜你喜欢
    • 2010-10-02
    • 2012-04-02
    • 1970-01-01
    • 2011-03-13
    • 2013-11-14
    • 2011-05-01
    • 1970-01-01
    • 2013-02-02
    • 2011-06-26
    相关资源
    最近更新 更多