我的ruby应用程序如何接收和解析带附件的电子邮件?

时间:2013-12-26 01:22:38

标签: ruby-on-rails ruby email

我想允许用户通过电子邮件将附件发送到我的应用,并将附件保存在他们的帐户中。每个用户都有一个唯一的私人电子邮件来发送文件。类似于Send to Dropbox的东西就是我想要的。

我一直在寻找一段时间,但找不到任何关于如何处理此问题的内容。我猜我在寻找错误的东西。我的最终问题是:进入这样一个功能的组件是什么?完成工作的最佳宝石是什么?

感谢。

2 个答案:

答案 0 :(得分:0)

使用procmail或.forward将收到的邮件通过管道传输到您的脚本中。该脚本以mbox格式STDIN传入(与http:headers-blankline-body相同)。我不知道是否有宝石,你可以零手动解析它。

.forward比procmail更容易:在使用sendmail的系统上,如果您有一个名为my_app的帐户,请将~my_app/.forward放入以下行:

|/foo/bar/my_app/process_mail.rb

它会将来自my_app@example.com的所有邮件传输到/foo/bar/my_app/process_mail.rb。分为标题和正文,将标题拆分为行,找到FromSubject标题,识别您的用户,按照其他方式执行您想要的操作。

On Rails,我怀疑你应该这样做:

|/usr/bin/env rails runner /foo/bar/my_app/process_mail.rb

或使用Bundler,

|/usr/bin/env bundle exec rails runner /foo/bar/my_app/process_mail.rb

因此,您可以获得脚本的Rails环境。

答案 1 :(得分:0)

以下是如何使用rails拦截电子邮件的详细说明:

http://steve.dynedge.co.uk/2010/09/07/incoming-email-in-rails-3-choosing-the-right-approach/