![](https://products-qa.fileformat.com/pt/email/java/apache-poi-hsmf/header-image.png)
Apache POI HSMF
Processe arquivos MSG via API Java de código aberto
Leia arquivos MSG do Microsoft Outlook para acessar informações de renderização, conteúdo de assunto e corpo ou extrair anexos com o Apache POI.
Se você é um desenvolvedor Java procurando uma biblioteca de processamento de e-mail para processar mensagens de e-mail, considere o Apache POI-HSMF. É a implementação Java pura do projeto do POI do formato MSG do Outlook, fornecendo acesso de leitura de baixo nível a arquivos MSG junto com uma maneira voltada ao usuário para obter o conteúdo textual comum de arquivos MSG, como remetente, assunto, corpo da mensagem e muito mais . Os desenvolvedores podem obter informações de cabeçalhos de mensagens, salvar mensagens de e-mail, ler propriedades de tamanho fixo do arquivo MSG, extrair propriedades de mensagens incorporadas, trabalhar com codificação de mensagens e muito mais.
Primeiros passos com o Apache POI HSMF
Antes de tudo, você precisa ter o Java Development Kit (JDK) instalado em seu sistema. Se você já o possui, vá para a página download do POI do Apache para obter a versão estável mais recente em um arquivo. Extraia o conteúdo do arquivo ZIP em qualquer diretório de onde as bibliotecas necessárias possam ser vinculadas ao seu programa Java. Isso é tudo!
Fazer referência ao Apache POI em seu projeto Java baseado em Maven é ainda mais simples. Tudo que você precisa é adicionar a seguinte dependência em seu pom.xml e deixar seu IDE buscar e referenciar os arquivos Apache POI Jar.
Dependência do Apache POI Maven
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.0</version>
</dependency>
API to Access Outlook MSG Files
API para acessar arquivos MSG do Outlook
O Apache POI-HSMF permite que desenvolvedores e programadores Java acessem o conteúdo dos arquivos MSG do Outlook. Apache POI-HSMF é uma porta do formato de arquivo de mensagem do Microsoft Outlook para Java puro. A API está no nível muito básico a partir de agora e, portanto, a funcionalidade limitada está disponível para trabalhar com mensagens de e-mail. Os desenvolvedores podem obter
Extrair dados do MSG - Java
// Open MSG file
MAPIMessage msg = new MAPIMessage("sample.msg");
// Read Content
System.out.println("From: " + msg.getDisplayFrom());
System.out.println("To: " + msg.getDisplayTo());
System.out.println("CC: " + msg.getDisplayCC());
System.out.println("BCC: " + msg.getDisplayBCC());
System.out.println("Subject: " + msg.getSubject());
Read & Extracts Attachments from Outlook MSG File
Ler e extrair anexos do arquivo MSG do Outlook
A API Apache POI-HSMF permite que desenvolvedores Java analisem arquivos MSG do Outlook; extrair e ler o conteúdo do documento incorporado. Os desenvolvedores podem acessar anexos de mensagens MAPI. Ele suporta a leitura de um ou vários arquivos MSG do Outlook e para cada um deles cria um arquivo de texto a partir de pedaços disponíveis e um diretório que contém anexos. Ele lê anexos do arquivo MSG do Outlook e os grava no disco como um arquivo individual.
Extrair anexos para MSG - Java
// Open MSG file
MAPIMessage msg = new MAPIMessage("sample.msg");
// Extract Attachment
AttachmentChunks[] attachments = msg.getAttachmentFiles();
if(attachments.length > 0) {
File d = new File("D:\\Attachments");
if(d.mkdir()) {
for(AttachmentChunks attachment : attachments) {
processAttachment(attachment, d);
}
}
}
Save Email Message Contents inside Java Apps
Salvar o conteúdo da mensagem de e-mail dentro de aplicativos Java
Os programadores Java podem usar a API Apache POI-HSMF para extrair e salvar o conteúdo da mensagem de e-mail. O corpo do e-mail pode ser extraído para criar um novo arquivo e você pode gravá-lo no disco com a ajuda do FileWrite.
Extraia o corpo do email para criar um novo arquivo via Java
String filename = "message.msg";
MAPIMessage msg = new MAPIMessage(filename);
PrintWriter txtOut = new PrintWriter("ApacheMessage.txt");
txtOut.println("Email Body: " + msg.getTextBody());
txtOut.close();