Javaでメールを読む

場合によっては、アプリケーション内からEMLまたはMSGの電子メールメッセージを読み取って解析する必要があります。プログラムでそれを行うために、この記事では、Javaで電子メールメッセージから情報を抽出する方法を示します。特に、電子メールの件名、宛先、送信元、本文、およびヘッダー情報の読み方を学習します。

メールを読むためのJavaAPI

メールメッセージを読むために、Aspose.Email for Javaを使用します。これは、Javaで機能豊富な電子メールクライアントを作成できる強力なAPIです。 APIのJARをダウンロードするか、次のMaven構成を使用してインストールできます。

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-email</artifactId>
    <version>21.3</version>
    <classifier>jdk16</classifier>
</dependency>

Javaを使用して電子メールメッセージを読む

以下は、Javaで電子メールメッセージを読み取る手順です。

  • MailMessageクラスを使用してメールファイルをロードします。
  • To、From、Subject、BodyなどのMailMessageオブジェクトを使用してメールの内容を読みます。

次のコードサンプルは、Javaを使用して電子メールメッセージを読み取る方法を示しています。

// EmlファイルをロードしてMailMessageインスタンスを作成します
MailMessage message = MailMessage.load("test.eml");

System.out.print("From: ");
// 送信者情報を取得する
System.out.println(message.getFrom());
		
System.out.print("To: ");
// 受信者情報を取得する
System.out.println(message.getTo());
		
System.out.print("Subject: ");
// 件名を取得
System.out.println(message.getSubject());
		
System.out.print("HtmlBody: ");
// HTML本文を取得する
System.out.println(message.getHtmlBody());
		
System.out.print("TextBody: ");
// テキスト本文を取得します
System.out.println(message.getTextBody());
		
System.out.print("HtmlBodyText: ");
// テキスト本文を取得します from HTML
System.out.println(message.getHtmlBodyText());

Javaでプレーンテキストとしてメール本文を抽出する

電子メールを読んで、その本文をHTMLではなくプレーンテキストとして抽出することもできます。この操作を実行する手順は次のとおりです。

次のコードサンプルは、Javaで電子メールの本文をプレーンテキストとして抽出する方法を示しています。

// メールメッセージを読み込む
MailMessage mail = MailMessage.load("HtmlWithUrlSample.eml");

body_with_url = mail.getHtmlBodyText(true);// body will contain URL
String body_without_url = mail.getHtmlBodyText(false);// body will not contain URL

// 電子メールメッセージを印刷する
System.out.println("Body with URL: " + body_with_url);
System.out.println("Body without URL: " + body_without_url);

Javaで電子メールからヘッダー情報を抽出する

Aspose.Email for Javaでは、電子メールメッセージのヘッダー情報を読み取ることもできます。この操作を実行する手順は次のとおりです。

  • MailMessageクラスを使用してメールファイルをロードします。
  • MailMessage.getHeaders()メソッドを使用して、電子メールのヘッダーコレクションをループします。

次のコードサンプルは、Javaを使用して電子メールメッセージのヘッダーを読み取る方法を示しています。

// EMLファイルをロードしてMailMessageインスタンスを作成します
MailMessage message = MailMessage.load("test.eml");

// すべてのヘッダーを印刷します
System.out.println("Printing all Headers:\n\n");
for (int i=0; i< message.getHeaders().size(); i++)
	System.out.println(message.getHeaders().get(i));

Javaで電子メールヘッダーをデコードする

次の手順を使用して、電子メールヘッダーをデコードすることもできます。

次のコードサンプルは、Javaで電子メールヘッダー値をデコードする方法を示しています。

// メールメッセージを読み込む
MailMessage mail = MailMessage.load("test.eml");

// ヘッダーからデコードされた値を取得する
String decodedValue = mail.getHeaders().getDecodedValue("Thread-Topic");

// 値を出力します
System.out.println(decodedValue);

無料のAPIライセンスを取得する

評価の制限なしにAPIを使用するために、無料の一時ライセンスを要求することができます。

ライブデモ

結論

この記事では、Javaを使用して電子メールメッセージを読み取る方法を学習しました。さらに、電子メールメッセージからヘッダー情報を抽出する方法を見てきました。 ドキュメントを使用して、Java電子メールAPIの詳細を調べることができます。また、ご不明な点がございましたら、フォーラムからお問い合わせください。

関連項目