2009-08-08 9 views
3

Hello Ruby/Rails/Merb開発者!Rubyで電子メールをパースするベストプラクティス

現在、電子メールでクライアントと通信する機能を持つWebプロジェクトで作業しています。だから、私は私の管理パネルの顧客のためのアカウントを作成し、次に質問/タスクやその他の仕事関連の事項を議論するためのトピック/スレッドを作成したとしよう。したがって、顧客は電子メール通知を受け取ります。また、顧客はシステムにログインして応答をシステム内に書き込むことができます。しかし、私は何をしようとしています:顧客が通知(メッセージの特別な識別コードを含む)に応答した後、私はスレッドにその応答をインポートする必要があります。それはクライアント間のコミュニケーションを非常に便利にします。

また、ソリューションは添付ファイルでも動作する必要があります。

私がこれを行うことのできる唯一の方法は、特別なメールチェックデーモンを開発し、通知アカウントからメールを取得し、中央データベースに自動的にデータを追加することです。おそらく、それは最良のアイデアではないでしょう。

私はこのような例を37signalsのBaseCampソフトウェアで見てきました。

質問:これにはベストプラクティスは何ですか?

答えて

1

私はあなた自身の解決策、メールフェッチスクリプトがこれについての最良の方法だと考えています。あなたのアプリケーションに不具合がある場合、ルビーからのメールをパイプで直接受け取るか、またはメッセージを直接受け取ると、メッセージが失われる危険性があります。メールサーバーが重労働をしてしばらくそれをポーリングしてみましょう。

Rubyには、標準ライブラリにNet::IMAPのサポートが付属しています。

1

別の方法として、別名ファイルのMTA(postfix、sendmail)のメールを、メールを処理してアプリケーションに入れるプログラムにパイプすることがあります。

/etc/aliases: 
your-application-email: /path/to/your/email/receiving/script 

Mailmanメーリングリストマネージャーは、このアプローチを使用します。欠点は、システムのメール設定にアクセスする必要があることです。しかし、あなたのアプリケーションの範囲に問題はないでしょう。

0

(不完全な回答...申し訳ありません) 私たちのチームは本当にうまくいくRedmineのメールモニタリング機能を使用しています。添付ファイル以外の上記のすべてを実装しているようです。

おそらく

redmine.org

:-)非常に少ない微調整してその機能を借りることができ
関連する問題