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