今日、電子メールは私たちの生活においてますます重要な役割を果たしており、私たち一人一人がそれに対処します(少なくとも時々、不可解なスパムを受け取ります)。職場では、電子メールを使用して通信することで、作業を追跡可能でフォーマルにすることができます。これは私たちによって手動で操作されます。人生では、ウェブサイトにアカウントを登録した後、ウェブサイトは自動的にウェルカムメールを送信し、悪意のある登録を防ぐために登録するかどうかを確認するように依頼します。もちろん、これは私たちが働いているように手動で操作することは不可能です。 Javaの13コアテクノロジーのJavamailは、電子メールに関連するAPIを提供します。
1。メールサーバー
インターネットで電子メール機能を提供するには、専用の電子メールサーバーを利用できる必要があります。多数の電子メールサーバーがインターネットにセットアップされています。たとえば、Sina.com、QQ.com、163.comなどのWebサイトは、一般に無料の電子メールサーバーを提供し、多くの企業も内部従業員向けに電子メールサーバーを提供しています。では、メールサーバーの機能は何ですか?これは、メールを送信したり、メールを受け取ったり、メールピックアップサービスを提供したりするのに役立ちます。これは、実生活の郵便局に似ています。電子メールを受け取るだけでなく、電子メールを受け取るためのサービスを提供することも、メールを送信するのにも役立ちます。次の写真は、メールサーバーの機能を鮮明に示しています
(1)ユーザーが配信したメールを受信します。
(2)ユーザーから送信された電子メールをターゲットメールサーバーに転送します。
(3)他のメールサーバーによって転送されたメールを受信し、管理者が管理するユーザーのメールボックスにメールを保存します。
(4)電子メールを読むために来たユーザーに読書サービスを提供します。
メールサーバーは、SMTPサーバーとPOP3/IMAPサーバーの通信プロトコルに従って2つのタイプに分割できます。上記の図の関数1、2、および3はSMTPサーバーによって完了し、関数4はPOP3サーバーによって完了します。
2。メール
各電子メールサーバーで複数のメールアドレスを開くことができます。メールアドレスはメールアドレスとも呼ばれます。実生活の郵送先住所に似ています。ユーザーは、他の人から電子メールを受信し、このアドレスを介して他の人にメールを送信できます。メールを取得するには、メールサーバーに適用する必要があります。正確には、電子メールは実際にユーザーがメールサーバーに適用するアカウントです。メールサーバーは、受信したメールを特定のアカウントに割り当てられたメールボックススペースに保存します(そのため、通常のメールを定期的にクリーンにする必要があります。そうしないと、割り当てられたスペースが割り当てられたスペースを超えた場合、新しいメールを受信できません)。ユーザーはメールサーバーにログインして、アドレスが受信した電子メールメッセージをユーザー名とパスワードを介して確認します。
3.電子メールの送信プロセス
電子メールの送信プロセスは、次の図で表すことができます
上の図のソリッドラインプロセスの説明:
1. [email protected]のメールクライアントがSinaのSMTPサーバーとのネットワーク接続を確立した後、Lisiのユーザー名とパスワードでログインし、SMTPプロトコルを使用してSinaのSMTPサーバーにメールを送信します。
2。[email protected]が提出したアドレスメールを受信した後、SINAのSMTPサーバーは、受信者のメールアドレスが受信者のアドレスの接尾辞に基づいてSMTPサーバーの管轄内にあるかどうかを最初に決定します。その場合、メールは受信者のメールアドレスに直接保存されます。それ以外の場合、SINAのSMTPサーバーは、受信者のメールアドレス(SOHU.com)の接尾辞で表されるドメイン名のMXレコードのDNSサーバーを照会し、SOHUのSMTPサーバー情報を取得し、SOHOのSMTPサーバーとの接続を確立し、SMTPプロトコルを使用してSOHUのSMTPサーバーに送信します。
3. SOHOのSMTPサーバーがSINAのSMTPサーバーから電子メールを受信した後、電子メールが受信者のアドレスに基づいてSMTPサーバーの管轄内にあるかどうかも判断します。その場合は、メールを受信者のメールボックスに直接保存してください。それ以外の場合、SOHUのSMTPサーバーは電子メールの転送を継続する場合があります。
4. [email protected]アカウントは、クライアントを介してSohoのPOP3/IMAPサーバーとのネットワーク接続を確立し、正常にログインした後、POP3/IMAPプロトコルを介して[email protected]の電子メールに新しいメールがあるかどうかを確認します。その場合、POP3またはIMAPプロトコルを使用して、メールボックスの電子メールを読み取ります。
点線プロセスは、実線プロセスに似ており、繰り返されなくなります。
Javamail APIは、Java開発者がアプリケーションでソリッドラインメールを送信および受信するように促進するために、Sunが採用した標準的な開発パッケージです。 SMTP、POP3、IMAP、MIMEなど、一般的に使用されるメールプロトコルをサポートしています。もちろん、このAPIを使用するには、関連するJARパッケージを最初にダウンロードする必要があります。最新バージョンは1.5.6です。downloadアドレス:https://java.net/projects/javamail/pages/home。
Javamail APIは通常、その機能に従って次の3つのカテゴリに分類できます。
1。電子メールコンテンツを作成および解析するためのAPI:メッセージクラスは、電子メールを作成および解析するためのコアAPIであり、そのインスタンスオブジェクトは電子メールを表します。
2。電子メールを送信するためのAPI:トランスポートクラスは、電子メールを送信するためのコアAPIクラスです。そのインスタンスオブジェクトは、SMTPプロトコルなどの特定の電子メール送信プロトコルを実装するメール送信オブジェクトを表します。
3.電子メールを受信するためのAPI:ストアクラスは、電子メールを受信するためのコアAPIクラスです。そのインスタンスオブジェクトは、POP3プロトコルなどの特定の電子メール受信プロトコルを実装する電子メール受信オブジェクトを表します。
セッションクラス:
セッションクラスは、アプリケーション全体に必要な環境情報を定義するために使用され、クライアントがホスト名、ポート番号、使用されるメールの送信および受信プロトコルなどのメールサーバーとのネットワーク接続を確立するためのセッション情報を収集するために使用されます。セッションオブジェクトは、この情報に基づいて電子メールの送信と受信のためにトランスポートと保存オブジェクトを構築し、クライアント向けのメッセージオブジェクトを作成する際に情報サポートを提供します。
上記の4つのクラスの関係は次のとおりです。
上記のコンテンツのほとんどは、「Java Mail Developmentの詳細な説明」という本から抜粋されています。 Javamailの次の記事Beginner 2番目の記事Create Emailでは、Javamailが提供するAPIを使用して電子メールを作成する方法を紹介します。