Чтение электронных писем в Java

В некоторых случаях вам может потребоваться прочитать и проанализировать сообщения электронной почты EML или MSG из ваших приложений. Чтобы сделать это программно, в этой статье показано, как извлечь информацию из сообщений электронной почты на Java. В частности, вы научитесь читать информацию о теме, отправителе, тексте и заголовке электронного письма.

Java API для чтения электронной почты

Чтобы читать сообщения электронной почты, мы будем использовать Aspose.Email для Java. Это мощный API, который позволяет создавать многофункциональные почтовые клиенты на Java. Вы можете либо скачать JAR-файл API, либо установить его, используя следующие конфигурации 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.
  • Прочитайте содержимое электронной почты, используя объект MailMessage, например, «Кому», «От», «Тема», «Тело» и т. д.

В следующем примере кода показано, как прочитать сообщение электронной почты с помощью Java.

// Создайте экземпляр MailMessage, загрузив файл Eml
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 для Java также позволяет читать информацию заголовка сообщения электронной почты. Ниже приведены шаги для выполнения этой операции.

  • Загрузите файл электронной почты, используя класс MailMessage.
  • Прокрутите коллекцию заголовков электронной почты, используя метод MailMessage.getHeaders().

В следующем примере кода показано, как читать заголовок сообщения электронной почты с помощью Java.

// Создайте экземпляр MailMessage, загрузив файл EML
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. Кроме того, вы видели, как извлечь информацию заголовка из сообщения электронной почты. Вы можете узнать больше об API электронной почты Java, используя документацию. Кроме того, вы можете связаться с нами через наш форум в случае возникновения каких-либо вопросов.

Смотрите также