2

メール機能を追加したいJavaWebアプリケーションがありますが、これを実現するために何が必要かわかりません。具体的には、アプリで次のことができるようにします。

  1. サインアップを確認するメールを送信する
  2. 私のアプリのドメイン、つまりdan@my-app.comを使用して、ユーザーが互いにメールを送信できるようにします

私の調査によると、Postfixのようなメール転送エージェント(MTA)と、おそらくCourierのようなIMAPサーバーが必要になるようです。しかし、IMAPサーバーの必要性を理解していません。

ありがとう。

4

3 に答える 3

2

電子メールを作成してSMTPの世界にディスパッチするには、Webアプリ内にコードが必要です。通常、これにはJavaMailが使用され、Webアプリケーションで囲むか、(推奨)WebコンテナにJNDIを介して正しく構成されたインスタンスを提供させることができます。これはベンダー固有です。

接続するJavaMail用のSMTPサーバーがない場合(多くの場合、これはExchange for Windowsショップです)、実行するか(IT管理者に問い合わせる)、問題がなければGoogleMailやHotmailなどを使用できます。それらを介してメールを送信するWebアプリケーション。GmailをSMTPサーバーとして使用するのは少し注意が必要ですが、正しく設定すると非常にうまく機能します。

SMTPサーバーは、MXレコードに関するすべての退屈な詳細を処理し、SMTPサーバーがグレーリストなどを実行する場合は再送信するため、SMTPサーバーが必要になります。

ああ、IMAPはメールを送信するのではなく、メールを配信するためのものです。あなたはそれを必要としません。

于 2010-07-29T15:27:15.483 に答える
1

Java Webアプリの場合、サーバー部分はサーブレットです。クライアントフォームから送信された電子メールメッセージを考えると、サーバーはそのテキストを電子メールとして送信する必要があります。

これを行うためのコードがJavaEEスタックにあります。または、JavaMailを具体的にダウンロードすることもできます。これにより、プログラムがメールクライアントとして機能できるようになります。

MTAはサーブレットからメッセージを受信し、それらをユーザーに送信します。ここまでは順調ですね。

ただし、ポストボックス、つまりユーザーのメール受信ボックスに相当するものも必要です。Postfix、QMailなどは基本的な「フラット」メールボックスモデルを提供します。このモデルでは、クライアントがメールを受け取るまでメールが保存され、その後(通常は)削除されます。アクセスはPOP3経由です。IMAPは、より多くの組織機能を提供します。つまり、ネストされたメールボックスの階層を指定したり、メールボックス間でメールを転送したりする機能などです。おそらく、そのような複雑さのすべてに対してGUIフロントエンドを作成したくないので、IMAPサーバーは実際には必要ないと思います。ただし、サーブレットがTCP / IPを介してメールボックスにアクセスできるようにするには、比較的単純なPOP3サーバーが必要です。これは通常、「標準」の電子メールサーバーパッケージの一部です。

独自のドメインを世界に知らしめるには、DNSサービスのMXレコードにアクセスする必要があります。つまり、インターネットに接続されたアドレスに、郵便局となる1つまたは2つのホストを設定する必要があります。

最後に、多くのトラブルを回避したい場合は、MTA(SMTPサーバー)をオープンリレーとして使用される可能性がないように構成する際は十分に注意してください。つまり、ユーザーが一般に外の世界にメールを送信することはできません(または、ハッカーWebインターフェイスを悪用してこれを行う方法を見つけるでしょう)。また、インターネットからのメールがユーザーに届かないようにする必要があります。最も重要なことは、インターネットからのメールをインターネットの他の場所に転送する方法があってはならないということです。ネット上でオープンリレーテストサービス(無料)を見つけて、完了したと思ったら構成でテストを実行できるようにします。

編集:

Thorbjornの答えを見て、おそらくユーザーがアプリを介してメールを受信することを望まないことに気づきました。彼らはおそらくすでに彼ら自身の電子メールプロバイダーとアカウントを持っています。その場合、受信トレイ機能やPOP3サーバーについて心配する必要はありません。ドメインで完全な電子メールサービスを提供することを検討することもできますが、それは非常にありがたい仕事です。選択肢があれば、その汚い仕事をGMail、Yahoo、Hotmailなどに任せてください。どんなサービスを提供しても、顧客を十分に満足させることはできず、毎日スパムやその他の犯罪と戦うことになります。

于 2010-07-29T15:33:39.170 に答える
0

手始めに、サーバーにはメール機能が必要です。Linuxでは、landsendmailは通常これがどうなるかです。

さらに、javaMailをチェックしてください。

http://www.oracle.com/technetwork/java/index-jsp-139225.html

于 2010-07-29T15:22:17.770 に答える