处理发送到rails中特定应用地址的电子邮件的最佳做法?

时间:2009-05-02 18:48:50

标签: ruby-on-rails ruby

我们希望实现一项功能,用户可以通过该功能向特定于应用程序的地址发送电子邮件,我们将解析该邮件并对其采取某些操作,类似于37signals的背包(可能还有其他一些应用程序)。 / p>

如果有人做过类似的事情,你能否告诉我你是怎么做的?我不确定如何在高级别“将”电子邮件“导入”应用程序,以便我可以处理它。

谢谢。

4 个答案:

答案 0 :(得分:1)

以下是我从POP服务器获取的方式:

require 'net/pop'

pop = Net::POP3.new('mail.yourdomain.com')
pop.start(account, password)
pop.each_mail do |m|
  email = TMail::Mail.parse(m.pop)
  email.base64_decode
  OttoMailer.process_email_in(email, m.unique_id)
  m.delete
end 
pop.finish

答案 1 :(得分:1)

我最近在rails中实现了这个确切的功能。我建议您查看Advanced Rails Recipes book中的“通过POP或IMAP可靠地接收电子邮件”。

我个人发现这是启动和运行的最佳来源,它解释了如何做得更好。你选择这样做的好运:)

答案 2 :(得分:0)

为什么不运行Ruby SMTP mailserver,它将通过端口25接收邮件,然后您可以根据需要解析/解释等等?

(我说Ruby,因为这是你标记问题的方式)

另一种解决方案是运行procmail(或类似),主题上的模式匹配,然后调用脚本(在.procmailrc文件中配置)。但是,对于大量邮件而言,这可能无法很好地扩展。

答案 3 :(得分:0)

ActionMailer can receive e-mails以及发送给他们!我不记得这是怎么做的,但如果你看一下文档就可以看到它。但是从内存中,电子邮件通过procmail传输到脚本目录中的脚本。

似乎有a book on the subject as well

祝你好运! :)