I vissa fall kan du behöva läsa och analysera EML- eller MSG-e-postmeddelanden från dina applikationer. För att göra det programmatiskt visar den här artikeln hur man extraherar information från e-postmeddelanden i Java. I synnerhet kommer du att lära dig hur du läser e-postmeddelandens ämne, till, från, brödtext och rubrikinformation.
- Java API för att läsa e-postmeddelanden
- Läs ett e-postmeddelande med Java
- Extrahera e-posttexten som vanlig text
- Extrahera rubrikinformation från e-post
- Avkoda e-posthuvudets värde
- Skaffa en gratis API-licens
Java API för att läsa e-postmeddelanden
För att läsa e-postmeddelandena använder vi Aspose.Email for Java. Det är ett kraftfullt API som låter dig skapa funktionsrika e-postklienter i Java. Du kan antingen ladda ner API:s JAR eller installera den med följande Maven-konfigurationer.
<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>
Läs ett e-postmeddelande med Java
Följande är stegen för att läsa ett e-postmeddelande i Java.
- Ladda e-postfilen med klassen MailMessage.
- Läs innehållet i e-postmeddelandet med MailMessage-objektet, såsom Till, Från, Ämne, Bröd, etc.
Följande kodexempel visar hur man läser ett e-postmeddelande med Java.
// Skapa MailMessage-instans genom att ladda en Eml-fil
MailMessage message = MailMessage.load("test.eml");
System.out.print("From: ");
// Få avsändarinformation
System.out.println(message.getFrom());
System.out.print("To: ");
// Få information om mottagarna
System.out.println(message.getTo());
System.out.print("Subject: ");
// Skaffa ämnet
System.out.println(message.getSubject());
System.out.print("HtmlBody: ");
// Hämta HTML-kroppen
System.out.println(message.getHtmlBody());
System.out.print("TextBody: ");
// Hämtar textens brödtext
System.out.println(message.getTextBody());
System.out.print("HtmlBodyText: ");
// Hämtar textens brödtext from HTML
System.out.println(message.getHtmlBodyText());
Extrahera e-posttext som vanlig text i Java
Du kan också läsa ett e-postmeddelande och extrahera dess brödtext som vanlig text istället för HTML. Följande är stegen för att utföra denna operation.
- Ladda e-postfilen med klassen MailMessage.
- Extrahera e-posttexten med metoden MailMessage.getHtmlBodyText(boolean).
Följande kodexempel visar hur man extraherar e-posttext som vanlig text i Java.
// Ladda e-postmeddelande
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
// Skriv ut e-postmeddelande
System.out.println("Body with URL: " + body_with_url);
System.out.println("Body without URL: " + body_without_url);
Extrahera rubrikinformation från ett e-postmeddelande i Java
Aspose.Email för Java låter dig också läsa rubrikinformation för ett e-postmeddelande. Följande är stegen för att utföra denna operation.
- Ladda e-postfilen med klassen MailMessage.
- Gå igenom rubriksamlingen för e-postmeddelandet med metoden MailMessage.getHeaders().
Följande kodexempel visar hur man läser rubriken på e-postmeddelandet med Java.
// Skapa MailMessage-instans genom att ladda en EML-fil
MailMessage message = MailMessage.load("test.eml");
// Skriv ut alla rubriker
System.out.println("Printing all Headers:\n\n");
for (int i=0; i< message.getHeaders().size(); i++)
System.out.println(message.getHeaders().get(i));
Avkoda e-postrubriker i Java
Du kan också avkoda e-posthuvudena med följande steg.
- Ladda e-postfilen med klassen MailMessage.
- Hämta avkodat e-posthuvuds värde med metoden MailMessage.getHeaders().getDecodedValue(String name).
Följande kodexempel visar hur man avkodar ett e-posthuvudvärde i Java.
// Ladda e-postmeddelande
MailMessage mail = MailMessage.load("test.eml");
// Få avkodat värde från header
String decodedValue = mail.getHeaders().getDecodedValue("Thread-Topic");
// Skriv ut värdet
System.out.println(decodedValue);
Skaffa en gratis API-licens
Du kan begära en gratis tillfällig licens för att använda API:t utan utvärderingsbegränsningar.
Live-demo
Slutsats
I den här artikeln har du lärt dig hur du läser e-postmeddelanden med Java. Dessutom har du sett hur man extraherar rubrikinformation från ett e-postmeddelande. Du kan utforska mer om Javas e-post-API med dokumentation. Dessutom kan du kontakta oss via vårt forum vid eventuella frågor.