Ruby on Rails - 如何使用 Rails3 应用程序解析电子邮件正文中的文本



我需要从转发的电子邮件中获取姓名和电子邮件地址,其中正文中有这样的行:

From: john smith <sales@domain.com>

最好的方法是什么?我应该使用好的库/宝石吗?

此外,此

行将因发送的电子邮件客户端以及语言而异,因此我需要一种更强大的方法,而不仅仅是匹配此字符串。

此外,有些客户在此行上不包含名称,而只包含电子邮件地址,因此我需要能够处理它。

require 'mail'  # only needed for non-Rails
m = Mail.new( "any RFC-conforming email including headers" )
puts m[:from].display_names.first
puts m[:from].addresses.first

Mail对象会自动包含在使用 ActionMailer 的 Rails 项目中 - 但如果您不使用ActionMailer,则需要将其添加到Gemfile

更新

我没有正确阅读OP的问题-他们想从转发的邮件正文中获取电子邮件地址。 我只会使用一些正则表达式:

name, email = m.body.match( /^s*From:s*(.*)s+<(.*)>$/)[1,2]

注意:这假设了相当多的电子邮件结构 - 仅HTML电子邮件可以轻松阻止此正则表达式。

相关内容

  • 没有找到相关文章

最新更新