0

与えられたタスク: 電子メールは、データベース内の 1 つ以上の (固定長の) チャンクにバイトごとに格納されます。このメールはそのデータベースから取得され、その内容がユーザーに表示されます。

従来のデータベースを ActiveRecord モデルにラップしたり、格納されたチャンクを連結したりすることに問題はありません。私がよくわからないのは、MIME 解析部分のどこから始めればよいかということです。データベース内に保存されたデータで初期化できる専用の EMail クラスを持っているようなものを考えました。そのクラスにより、メールがどの MIME パーツで構成されているかを確認し、たとえばそのtext/*パーツを表示できます。

現在、ActionMailer は着信メールを解析できるようですが、メールの受信に関するドキュメントはむしろ「まばら」であり、STDIN からのメールの受信について言及しているだけです。

Rails で MIME メール (またはその一部) を解析して表示するにはどうすればよいですか? その内容を単一の文字列、変数、クエリ結果などとして提供できる場合

4

3 に答える 3

0

MMS2Rを見てください。

私は最近それを電子メールの解析に使用していますが、それはとても良い仕事をしています。

于 2009-09-16T14:27:15.440 に答える
0

私はそれを間違っていました。Rails には、MIME メールを完全に解析できるTMail ライブラリが付属しています。TMail::Mail.parse基本的なワークフローは、1 つの保存されたメッセージからチャンクを連結し、次のように渡すのと同じくらい簡単です。

email = TMail::Mail.parse(StoredMessage.find(:all,
  :conditions => ["mail_id = ?", "oyByGqacG73b"],
  :order => "chunk_ind").collect(&:mail_text).join)

email.body #=> this is your test body
email.subject # => test subject
email.has_attachment? #=> true
email.attachments.first.original_filename # => bulkfile

Rails のライブラリ全体を見逃してしまったことを本当にお詫び申し上げます。

于 2009-09-16T15:56:42.763 に答える
0

「has_attachment* s *?」(複数形) はメソッドの正しい名前です

于 2010-11-30T18:18:28.530 に答える