ホームページ  >  記事  >  Java  >  Java で電子メールを受信する

Java で電子メールを受信する

WBOY
WBOYオリジナル
2024-08-30 15:56:47878ブラウズ

Java での電子メールの受信は、MimeMessage、Session、および Transport クラスと組み合わせて使用​​される Store クラスと Folder クラスです。これは、電子メールを受信し、JavaMail API の電子メール送信段階を学習するために使用されます。 emailreceive テスト クラスは、近くの電子メール サーバーとアカウントのメールに接続して表示し、ホスト構成ファイル内のホスト名と、優先メール ストア プロトコル タイプである Pop3 の IP アドレスを示します。

Java で電子メールを受信する

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

重要なポイント

  • JavaMail API を使用する場合、電子メールは Store クラスと Folder クラスを使用して受信されます。
  • Java API を使用して電子メールを送受信できます。基礎となるプロトコルはこの層とはまったく関係がありません。
  • Session クラスの getDefaultInstance() または getInstance() メソッドを使用して、セッション インスタンスを取得します。 POP3 ショップ オブジェクトとポップ ストアへのリンクを生成します。
  • ストア オブジェクトで getFolder() メソッドを実行した後、フォルダー オブジェクトを作成し、メールボックスで開きます。
  • フォルダー オブジェクトからメッセージを取得します。
  • フォルダーをロックし、アイテムを保管します。

Java での電子メールの受信とは何ですか?

JavaMail API の電子メール送信段階について学習するために、emailreceive テスト クラスは近くの電子メール サーバーに接続し、アカウントの電子メールに接続し、それらを表示してホストの構成ファイル内のホスト名の IP アドレスを強調表示します。また、pop3 は優先されるメール ストア プロトコル タイプです。

電子メールの受信は、Store クラスと Folder クラスを MimeMessage、Session、および Transport クラスと組み合わせて使用​​して行われます。プログラムは電子メール メッセージを HTTP リクエストとして受信します。受信電子メール メッセージを処理するには、アプリケーション セットアップで電子メール アドレスをサーブレットに関連付ける必要があり、その後 Web アプリにサーブレット コードを含める必要があります。適切なサーブレットは、受信電子メールから HTTP リクエストを受信して​​、リクエストを処理し、応答を送信します。

Java クラスで受信メールを作成する

Java Mail API を使用して電子メールを送信することを検討しました。学習するプロトコルは 1 つ (SMTP) だけなので、電子メールの送信はかなり簡単でした。ただし、受信に使用されるプロトコルは POP3 と IMAP の 2 つです。より伝統的な POP3 プロトコルでは、メール メッセージの 1 つのキューを持つ 1 つの受信ボックスが提供されます。最新の標準である IMAP では、メールがフォルダー階層内のエントリとして表示され、そのうちの 1 つが受信トレイになります。

メール受信手順

  • プロパティ クラスを使用してプロトコルとメール サーバーを定義するメール プロパティを定義します。
  • レターを読むためにすでに定義した属性を使用してセッションを作成します。
  • 接続を確立し、メッセージを読み取るためのストアを作成します。
  • 読み取る必要があるフォルダーを定義して開きます。読み取り専用フォルダーを開く必要があります。
  • 選択したフォルダーの未読の内容を調べ、結果をメッセージの配列に保存します。
  • 次にメッセージを表示します。

JavaMail の 2 つの Jar ファイル

POP3 および IMAP プロバイダーの実装と、それらの安全な対応物である POP3S および IMAPS は、Java Mail に含まれています。

JavaMail API を使用して電子メールを送信するには、次の 2 つの jar ファイルをロードする必要があります:

Java で電子メールを受信する

  • mail.jar
  • アクティベーション.jar

完全に無料でオープンソースの JavaMail API 実装を製品に組み込むことができます。このエディションには、SMTP、POP3、および IMAP プロバイダーも搭載されています。 Jakarta Mail と呼ばれる Jakarta EE API は、主に SMTP、POP3、および IMAP プロトコルを介して電子メールを送受信するために使用されます。 Java EE プラットフォームには Jakarta Mail の組み込みバージョンが含まれていますが、Java SE ユーザーは代わりに追加のパッケージを利用することもできます。ここ数か月リリースされた最新バージョンと、別のオープンソース Java Mail 実装である GNU JavaMail では、JavaMail 仕様のバージョン 1.3 のみをサポートしていますが、無料の NNTP バックエンドのみを提供しており、このテクノロジーを読み取りと送信に使用できるようにしています。ニュースグループの記事。

  • Mail.jar: 完全に無料でオープンソースの JavaMail API 実装を製品に組み込むことができます。さらに、IMAP、POP3、および SMTP プロバイダーがこの jar エディションに含まれています。
  • Activation.jar: JavaBeans Activation Framework クラスは、この JAR (Java Archive) ファイルに含まれています。デモ: このディレクトリにあるいくつかの JAF 機能を利用した、サポートされていない単純なデモのコレクション。 JAF のパブリック クラスの Javadoc API の説明を含むディレクトリは、ドキュメントとして機能します。

Java でのメール受信の例

以下に挙げる例を示します:

コード:

package TestNG;
import java.io.IOException;
import java.util.Properties;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Store;
import com.sun.mail.pop3.POP3Store;
public class NewTest{
public static void receiveEmail(String hst, String stype,
String user, String password) {
try {
Properties props = new Properties();
props.put("mail.store.protocol", "pop3");
props.put("mail.pop3s.host", hst);
props.put("mail.pop3s.port", "995");
props.put("mail.pop3.starttls.enable", "true");
Session sess = Session.getDefaultInstance(props);
Store st = sess.getStore("pop3s");
st.connect(hst, user, password);
Folder emailFolder = st.getFolder("INBOX");
emailFolder.open(Folder.READ_ONLY);
Message[] messages = emailFolder.getMessages();
for (int i = 0; i < messages.length; i++) {
Message message = messages[i];
System.out.println("Welcome To Email");
System.out.println("Email Number " + (i + 1));
System.out.println("Subject: " + message.getSubject());
System.out.println("From: " + message.getFrom()[0]);
System.out.println("Text: " + message.getContent().toString());
}
emailFolder.close(false);
st.close();
} catch (NoSuchProviderException e) {e.printStackTrace();}
catch (MessagingException e) {e.printStackTrace();}
catch (IOException e) {e.printStackTrace();}
}
public static void main(String[] args) {
String host = "pop.gmail.com";
String stypes = "pop3";
String username= "[email protected]";
String password= "xodbizaoiqijifre";
receiveEmail(host, stypes, username, password);
}
}

出力:

Java で電子メールを受信する

説明:

  • 上記の例では、Java メール サービスから電子メールを受信して​​いました。
  • ここでは、ストア、pop3、およびその他の smtp サービスを使用して、特定のメール ユーザーに接続します。
  • Folder 配列と Messages[] 配列を使用すると、インスタンスを作成し、特定の時点でデータが保存されます。
  • ループでデータを反復し、必要な条件を検証するために、最後にすべてのデータを出力します。
  • メイン メソッドはメソッドを呼び出し、もう一度接続インスタンスを作成してこの操作を実行します。

よくある質問

以下に挙げる FAQ を示します:

Q1. Java の電子メール受信を定義します。

答え:

JavaMail API を使用して、基礎となるプロトコルで基本的な電子メールを取得または受信することは、この層にはまったく関係ありません。

Q2. Java で電子メールを受信するために使用されるプロトコルは何ですか?

答え:

  • IMAP
  • POP3

IMAP はメッセージを受信するための高度なプロトコルです。

Q3. Java 電子メールを受信するにはどうすればよいですか?

答え:

  • セッションオブジェクトを取得します。
  • POP サーバーに接続し、POP3 またはストア オブジェクトを構築します。
  • フォルダーオブジェクトを作成したら開きます。
  • フォルダーから取得したメッセージの配列を印刷します。
  • フォルダーをシャットオフし、オブジェクトを保存します。

結論

プログラムは電子メール メッセージを HTTP リクエストとして受信します。受信電子メール メッセージを処理するには、アプリケーション セットアップで電子メール アドレスをサーブレットに関連付ける必要があり、アプリにサーブレット コードを含める必要があります。その後、適切なサーブレットが受信メールから HTTP リクエストを受信して​​処理します。

以上がJava で電子メールを受信するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。