私はマルチユーザーシステム向けの電子メールポーリングソリューションに取り組んでいます。したがって、ユーザーはそれぞれのIDで電子メールを送信でき、ポーリングされてデータベースに挿入されます。
私が検討している2つのオプションがあります。
- Perl/Unixベースの電子メールポーラー。
- Javaベースのポーラー。
何をお勧めしますか..(他の提案も歓迎します)
ポーリングする代わりに、メールをプロセスに転送してみませんか?使用するメールサーバーに応じて、エイリアスとして、または.forwardファイルでそれを行うことができます。
これに追加することはあまりありませんが、現在googlecodeにオープンソースとしてiwantsandy.comを再構築するプロジェクトがあります。
それは次の場所にあります:
http ://code.google.com/p/sandysback/
私は間違いなくこれを見て、彼らがどのように電子メールを解析し、それらの電子メールを「データベースに挿入」するかを確認するつもりです。
あなたが最も経験のある言語はどれでも!
私は個人的にjavaとperlをよく知っており、このタスクではperlを選択しますが、違いはごくわずかです。
Perlはより短く、より甘く、Javaはより長くかかりますが、データベースアクセスが整理されると、おそらくより堅牢なソリューションになります。
Perl DBIは、データベースの実装をコードから隠さず、バージョンの変更などに敏感なJDBCよりも優れた移植性の高いデータベースインターフェイスであることがわかりました。IEには、ターゲットデータベースに適したデータベースドライバーの適切なバージョンが必要です。
いくつかのオプションがあります。元の投稿者が言ったように、おそらく最も簡単な方法は、エイリアス ファイルにエントリをスクリプトに設定することです。
次に、電子メールの本文が標準入力としてスクリプトに渡されます。その後、perl スクリプト + Mime モジュールを使用して、メッセージのビットを解析し、必要なことを行うことができます。
また、カスタム メール サーバーである apache james を見ることもできます。それらには、ビジネスロジックを入れる「メールレット」と呼ばれるサーブレットと同等のものがあります。ただし、ほとんどの企業はカスタムメールサーバーを展開することを好まないため、エンタープライズシナリオで展開するのは難しいことがよくあります。
...エイリアスルートがおそらく最善の策です。もう 1 つの注意事項 - 電子メールは保証されません。これをある種のアプリ間メッセージング システムとして使用していて、両端を制御している場合は、JMS タイプのメッセージングなど、別のものを検討する必要があります。
-エース
RE: ポーリング
メールをプロセスに転送するオプションがある場合は、それを行うことを強くお勧めします. (通常、転送は、ポーリングよりもサーバーにかかる負荷が少なくなります。)そうでない場合は、ポーリングが次善の策です。最も使い慣れた言語の POP3 クライアント ライブラリを調べてください。
RE: 言語の選択
メールの解析をたくさん行うつもりなら、Perl を選ぶでしょう。解析があまり必要ない場合は、Java が適しています ;-)。
-- 以前、私は Perl スクリプトを作成して、(適切に構造化された) 受信メールを HTML ページに解析し、それらを Web サーバーに投稿しました。