場合によっては、アプリケーション内からEMLまたはMSGの電子メールメッセージを読み取って解析する必要があります。プログラムでそれを行うために、この記事では、Javaで電子メールメッセージから情報を抽出する方法を示します。特に、電子メールの件名、宛先、送信元、本文、およびヘッダー情報の読み方を学習します。
- メールを読むためのJavaAPI
- Javaを使用して電子メールメッセージを読む
- メール本文をプレーンテキストとして抽出
- 電子メールからヘッダー情報を抽出する
- 電子メールヘッダーの値をデコードする
- 無料のAPIライセンスを取得する
メールを読むための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ではなくプレーンテキストとして抽出することもできます。この操作を実行する手順は次のとおりです。
- MailMessageクラスを使用してメールファイルをロードします。
- MailMessage.getHtmlBodyText(boolean)メソッドを使用してメールの本文を抽出します。
次のコードサンプルは、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で電子メールヘッダーをデコードする
次の手順を使用して、電子メールヘッダーをデコードすることもできます。
- MailMessageクラスを使用してメールファイルをロードします。
- MailMessage.getHeaders().getDecodedValue(String name)メソッドを使用して、デコードされた電子メールヘッダーの値を取得します。
次のコードサンプルは、Javaで電子メールヘッダー値をデコードする方法を示しています。
// メールメッセージを読み込む
MailMessage mail = MailMessage.load("test.eml");
// ヘッダーからデコードされた値を取得する
String decodedValue = mail.getHeaders().getDecodedValue("Thread-Topic");
// 値を出力します
System.out.println(decodedValue);
無料のAPIライセンスを取得する
評価の制限なしにAPIを使用するために、無料の一時ライセンスを要求することができます。
ライブデモ
結論
この記事では、Javaを使用して電子メールメッセージを読み取る方法を学習しました。さらに、電子メールメッセージからヘッダー情報を抽出する方法を見てきました。 ドキュメントを使用して、Java電子メールAPIの詳細を調べることができます。また、ご不明な点がございましたら、フォーラムからお問い合わせください。