我正在创建一个 ruby on rails 应用程序,我希望我的用户能够通过电子邮件发送应用程序并让应用程序接收电子邮件并在数据库中创建问题记录。是否有 GEM 或代码可用于让 rails 应用程序获取电子邮件并解析正文并将其粘贴到问题表中。
问问题
290 次
1 回答
2
我不知道是否有一个 gem 可以完成整个任务,但从技术上讲你不需要一个。我最近这样做了,尽管使用 ruby 的 IMAP 库并不是世界上最有趣/最直观的事情,但它可以完成工作。
IMAP 可用于以编程方式访问电子邮件帐户并与之交互。这是一个直接来自我的代码的示例(为了让某人更容易实现而进行了模糊处理):
require 'net/imap'
imap = Net::IMAP.new("imap.gmail.com", 993, true)
imap.login(CONFIG["username"], CONFIG["password"])
imap.select('INBOX')
imap.search(["NOT", "DELETED"]).each do |mail_id|
mail = TMail::Mail.parse(imap.fetch(mail_id, "RFC822").first.attr["RFC822"])
do_something_cool(mail)
imap.store(mail_id, "+FLAGS", :Deleted)
end
imap.expunge
imap.logout()
imap.disconnect()
在此示例中,我使用 IMAP 库访问一个 gmail 帐户,进入收件箱,并获取每封未删除的邮件。TMAIL gem,虽然不是必需的,但让处理电子邮件变得更加容易。就我而言,我需要在解析电子邮件后删除它们,所以我在电子邮件中添加了一个删除标志,然后,当我完成后,我清除了所有已删除电子邮件的帐户。
下半部分是解析电子邮件以获取您想要的数据并从中进行记录。我把那部分留给实施者。
于 2010-07-30T15:58:45.410 回答