Extrahera e-postmeddelanden via de 5 mest populära metoderna i Java

När du utvecklar ett e-posthanteringsprogram är det viktigt att skapa en effektiv mekanism för att extrahera meddelanden från en inkorg för pålitlig och snabb leverans och tillgänglighet. Det uppskattas särskilt av organisationer och företag som hanterar den växande volymen av inkommande meddelanden. I den här artikeln kommer vi att undersöka hur man kan utnyttja kraften i Java-biblioteket för att hämta e-postmeddelanden via POP3, IMAP, EWS, Graph API och från offline-postlådelagringar i olika format som exempel på en pst-fil. Dessa tillvägagångssätt erbjuder en omfattande lösning för hämtning av e-post, vilket utökar funktionerna i din Java-applikation.

Java API för att extrahera meddelanden

För att extrahera meddelanden från en server eller en postlådelagring i Java kommer vi att använda Aspose.Email for Java. Aspose.Email är ett robust bibliotek som gör det möjligt för Java-utvecklare att arbeta med e-postmeddelanden, mappar och e-postservrar utan ansträngning. Det ger stöd för ett brett utbud av e-postformat, inklusive MSG, EML, PST och OST, vilket gör det till ett mångsidigt val för e-postrelaterade uppgifter. Du kan enkelt implementera API:t i ditt projekt om du laddar ner det eller installerar det med hjälp av följande Maven-konfigurationer.

Förvar:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>

Beroende:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-email</artifactId>
    <version>23.11</version>
    <classifier>jdk16</classifier>
</dependency>

Hämta e-postmeddelanden via POP3

POP3 (Post Office Protocol 3) är ett allmänt använt protokoll för e-posthämtning. Det låter dig ladda ner e-postmeddelanden från en e-postserver till din lokala enhet. Med Aspose.Email kan du enkelt hämta e-postmeddelanden via POP3 genom att använda följande kodavsnitt med steg:

  1. Använd klassen Pop3Client för att skapa ett objekt som passerar de nödvändiga egenskaperna för att upprätta anslutningen till POP3-servern.
  2. Aktivera automatiskt val av lämpligt säkerhetsprotokoll genom att ställa in säkerhetsalternativen till SecurityOptions.Auto.
  3. Hämta en samling meddelanden i brevlådan genom att anropa metoden listMessages på objektet Pop3Client.
  4. Iterera över messageInfoCol-samlingen.
  5. För varje Pop3MessageInfo-objekt anropar du metoden fetchMessagePop3Client-objektet och skickar sekvensnumret som hämtats från messageInfo.getSequenceNumber().
  6. Inne i loopen kan du sedan arbeta med det hämtade meddelandet i eml-variabeln, som att läsa dess innehåll eller spara det i en fil.
Pop3Client client = new Pop3Client("pop3.server.com", "username", "password");
client.setSecurityOptions(SecurityOptions.Auto);

try {
    Pop3MessageInfoCollection messageInfoCol = pop3Client.listMessages();
	
	for (Pop3MessageInfo messageInfo : messageInfoCol) {
	    MailMessage eml = client.fetchMessage(messageInfo.getSequenceNumber());
    }
} catch (Exception ex) {
    System.out.println(ex.getMessage());
} finally {
    client.dispose();
}

Hämta e-postmeddelanden via IMAP

IMAP (Internet Message Access Protocol) är ett standardprotokoll för e-posthämtning som låter e-postklienter komma åt och hantera meddelanden som lagras på en fjärransluten e-postserver. Till skillnad från POP3, som vanligtvis laddar ner e-postmeddelanden till en lokal enhet, håller IMAP meddelanden på servern, vilket gör den idealisk för synkronisering med flera enheter och fjärråtkomst. Aspose.Email möjliggör en sömlös integration av protokollet i din app. Se följande kodexempel med steg för att hämta meddelanden:

  1. Skapa ett ImapClient-objekt och skicka värdnamnet, användarnamnet och lösenordet för IMAP-servern.
  2. Ställ in klientens säkerhetsalternativ till SecurityOptions.Auto, vilket möjliggör automatiskt val av lämpligt säkerhetsprotokoll.
  3. Anropa metoden listMessagesImapClient-objektet för att hämta en samling ImapMessageInfo-objekt som representerar meddelandena i brevlådan.
  4. Iterera över messageInfoCol-samlingen.
  5. För varje ImapMessageInfo-objekt anropar du metoden fetchMessageImapClient-objektet och skickar det unika ID som hämtats från messageInfo.getUniqueId().
  6. Inne i loopen kan du sedan arbeta med det hämtade meddelandet i eml-variabeln, som att läsa dess innehåll eller spara det i en fil.
ImapClient client = new ImapClient("localhost", "user", "password");
client.setSecurityOptions(SecurityOptions.Auto);

try {
    ImapMessageInfoCollection messageInfoCol = client.listMessages();
	
	for (ImapMessageInfo messageInfo : messageInfoCol) {
	    MailMessage eml = client.fetchMessage(messageInfo.getUniqueId());
    }
} catch (Exception ex) {
    System.out.println(ex.getMessage());
} finally {
    client.dispose();
}

Hämta meddelanden från MS Exchange Server

Exchange Web Services-protokollet (EWS) är ett kraftfullt och mångsidigt kommunikationsprotokoll utvecklat av Microsoft för att komma åt och hantera data inom Microsoft Exchange Server och Office 365. Aspose.Email tillhandahåller en samling funktioner för att fungera med Exchange-postlåda och meddelanden som gör det möjligt för utvecklare att bygga applikationer och tjänster som sömlöst integreras med och hanterar data inom Microsoft Exchange Server och Office 365, vilket gör dem till värdefulla verktyg för modern affärskommunikation och samarbete. Nedan presenteras en effektiv integration av vårt API med EWS-protokoll i ett enkelt kodavsnitt med steg:

  1. Skapa ett IEWSClient-objekt, anropa getEWSClient-metoden i klassen EWSClient och skicka URL:en till Exchange-serverns EWS-slutpunkt, samt användarnamn och lösenord för autentisering.
  2. Anropa metoderna getMailboxInfo() och getInboxUri() på klientobjektet för att få URI:n till mappen Inbox.
  3. Anropa metoden listMessages() på klientobjektet och skicka inkorgens URI för att hämta en samling ExchangeMessageInfo-objekt som representerar meddelandena i inkorgen.
  4. Iterera över messageInfoCol-samlingen.
  5. För varje ExchangeMessageInfo-objekt anropar du metoden getUniqueUri() för att få meddelandets unika URI.
  6. Anropa metoden fetchMessage på klientobjektet, skicka strMessageURI, för att hämta det specifika meddelandet.
  7. Inne i loopen kan du sedan arbeta med det hämtade meddelandet i eml-variabeln, som att läsa dess innehåll eller spara det i en fil.
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "UserName", "Password");
ExchangeMessageInfoCollection messageInfoCol = client.listMessages(client.getMailboxInfo().getInboxUri());

for (ExchangeMessageInfo msgInfo : (Iterable<ExchangeMessageInfo>) messageInfoCol) {
    String strMessageURI = msgInfo.getUniqueUri();

    MailMessage eml = client.fetchMessage(strMessageURI);
}

Microsoft Graph för att extrahera meddelanden från en server

Microsoft Graph API är ett REST API som tillhandahålls av Microsoft för åtkomst till olika Microsoft-tjänster, inklusive Outlook och Office 365. En instans av klassen IGraphClient, tillhandahållen av Aspose.Email för Java, hanterar byggförfrågningar och skickar dem till Microsoft Graph API och bearbetning av svaren. Denna integration ger en uppsättning funktioner för effektiv e-posthantering. Kodexemplet nedan visar funktionaliteten för meddelandehämtning som stöds av följande steg:

  1. Skapa ett IGraphClient-objekt genom att anropa metoden getClient i klassen GraphClient och skicka ett tokenProvider-objekt för att autentisera med Microsoft Graph API.
  2. Anropa metoden listMessages på IGraphClient-objektet och skicka GraphKnownFolders.Inbox för att hämta en samling GraphMessageInfo-objekt som representerar meddelandena i inkorgen.
  3. Iterera över messageInfoColl-samlingen.
  4. För varje GraphMessageInfo-objekt anropar du metoden fetchMessage på IGraphClient-objektet och skickar metoden getItemId som en parameter för att hämta det specifika meddelandet.
  5. Inne i loopen kan du sedan arbeta med det hämtade meddelandet i meddelandevariabeln, som att läsa dess innehåll eller spara det i en fil med klassen MapiMessage.
IGraphClient client = GraphClient.getClient(tokenProvider);
GraphMessageInfoCollection messageInfoColl = client.listMessages(GraphKnownFolders.Inbox);

for (GraphMessageInfo messageInfo : messageInfoColl) {
    MapiMessage message = client.fetchMessage(messageInfo.getItemId());
}

Extrahera meddelanden från postlådelagring offline

Offline-postlådelagring avser lagring av e-postmeddelanden och relaterad data på en lokal enhet eller dator, vilket gör att användare kan komma åt sina e-postmeddelanden utan en aktiv internetanslutning. Vårt progressiva bibliotek låter dig utveckla e-postklienter och applikationer som ger användare möjlighet att arbeta med sina e-postmeddelanden även när de inte är anslutna till e-postservern eller internet. Följande kodavsnitt med steg visar dig hur du kan utnyttja kraften i biblioteket för att öppna en Outlook Personal Storage-fil (PST), komma åt mappen “Inkorgen” och extrahera varje meddelande från den.

  1. Skapa ett PersonalStorage-objekt, anropa metoden fromFile i klassen PersonalStorage och skicka filsökvägen till PST-filen (“storage.pst”).
  2. Gå till rotmappen för PST-filen genom metoden getRootFolder på PersonalStorage-objektet.
  3. Hämta mappen “Inkorgen” från rotmappen med metoden getSubFolder, och skicka “Inkorgen” som mappnamn.
  4. Iterera över meddelandena i mappen Inkorg.
  5. För varje MessageInfo-objekt i samlingen folder.enumerateMessages() anropar du extractMessage-metoden på PersonalStorage-objektet och skickar parametern messageInfo för att extrahera det specifika meddelandet.
  6. Inne i slingan kan du sedan arbeta med det extraherade meddelandet i msg-variabeln, som att läsa dess innehåll eller bearbeta dess metadata med klassen MapiMessage.
PersonalStorage pst = PersonalStorage.fromFile("storage.pst");
FolderInfo folder = pst.getRootFolder().getSubFolder("Inbox");

for (MessageInfo messageInfo : folder.enumerateMessages()) {

        MapiMessage msg = pst.extractMessage(messageInfo);
    }

Slutsats

I den här artikeln har vi lärt oss hur man kan utnyttja kraften i Aspose.Email for Java för e-posthämtning. Med stöd för POP3, IMAP, EWS, Graph API och offline-postlådelagring ger biblioteket dig möjlighet att anpassa din applikations funktionalitet för att möta specifika behov. Oavsett om du utvecklar en klientapplikation, ett integrationsverktyg eller en anpassad lösning, utrustar vårt Java API dig med verktygen för att skapa en sömlös och effektiv meddelandehanteringsupplevelse. Du kan utforska andra funktioner i Aspose.Email med hjälp av dokumentationen. Du kan också skicka dina frågor till vårt forum.

Se även