Ruby on Rails アプリケーションを作成しています。ユーザーがアプリケーションに電子メールを送信し、アプリケーションが電子メールを受信してデータベースに課題レコードを作成できるようにしたいと考えています。Railsアプリケーションが電子メールを取得し、本文を解析して問題テーブルに貼り付けるために使用できるGEMまたはコードはありますか?
1 に答える
2
タスク全体を実行するための宝石があるかどうかはわかりませんが、技術的には必要ありません。私は最近これを行いました。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ジェムは、必須ではありませんが、電子メールの処理をはるかに簡単にします。私の場合、解析後にメールを削除する必要があるため、メールに削除フラグを追加し、完了したら、削除されたすべてのメールのアカウントをクリアします。
次の半分は、必要なデータの電子メールを解析し、それからレコードを作成することです。その部分は実装者に任せます。
于 2010-07-30T15:58:45.410 に答える