Skicka, läs och organisera meddelanden på Exchange‑servern
Hämta Exchange‑mailboxinformation med EWS
Aspose.Email låter dig hämta mailbox‑detaljer från Microsoft Exchange med hjälp av IEWSClient klass. Genom att anropa GetMailboxInfo() metod, klienten returnerar ett ExchangeMailboxInfo objekt som innehåller användbara mapp‑URI:er såsom Mailbox, Inbox, Drafts och Sent Items.
För att ansluta till Exchange‑servern med Exchange Web Services (EWS), använd IEWSClient klass. Denna klass använder EWS för att ansluta till och hantera objekt på en Exchange‑server.
Följande kodsnutt demonstrerar hur man hämtar mailbox‑information med hjälp av Exchange Web Services.
Skicka e‑postmeddelanden via EWS
Du kan skicka e‑post via Exchange genom att anropa IEWSClient->Send() metod. Den tar en MailMessage objekt och skickar det direkt genom servern med EWS.
Följande kodexempel visar hur man skickar ett HTML‑e‑postmeddelande via en Exchange‑server med Exchange Web Services (EWS) och Aspose.Email för C++. Det visar hela processen för att etablera en anslutning till Exchange, skapa ett meddelande med avsändare, mottagare, ämne och HTML‑innehåll, och sedan skicka meddelandet med EWS‑klientens Send‑metod.
Läsa e‑post från en annan användares brevlåda
Vissa konton på Exchange‑servrar har rätt att komma åt flera brevlådor, och vissa användare har flera e‑postkonton på samma Exchange‑server. I båda fallen kan användare komma åt andra användares brevlådor med Aspose.Email. API:et erbjuder en mekanism för att komma åt mappar och e‑post från andra brevlådor med hjälp av IEWSClient klass. Denna funktion kan uppnås med den överlagrade GetMailboxInfo() metoden och ange användarens e‑postadress som parameter.
Följande kodsnutt visar hur du läser e‑post med IEWSClient klass.
Lista meddelanden med EWS
Aspose.Email för C++ låter dig hämta meddelandemetadata från Exchange Server‑brevlådor via IEWSClient. Använd den EWS‑baserade ListMessages API:n kan du lista meddelanden från vilken mapp som helst, bläddra i meddelandemetadata och implementera sidindelning för stora brevlådor.
Lista meddelanden från Inkorgen
Använd ListMessages för att hämta grundläggande meddelandeinformation såsom ämne, avsändare, mottagare och meddelande‑ID från Inkorgen eller någon mapp.
Följande kodexempel demonstrerar hur man listar och visar grundläggande information för alla meddelanden i en Exchange‑server.
- Skapa en instans av IEWSClient.
- Anropa ListMessages med målmapparns URI.
- Iterera igenom ExchangeMessageInfoCollection.
Lista meddelanden från vilken mapp som helst
ListMessages accepterar vilken giltig mapp‑URI som helst, vilket låter dig lista objekt från Borttagna objekt, Utkast, Skickade objekt eller anpassade mappar. Använd IEWSClient->get_MailboxInfo->xxxFolderUri egenskap för att hämta URI:n för olika mappar.
Följande kodexempel visar hur man får åtkomst till olika Exchange Server‑mapp‑URI:er och hämtar meddelanden från en specificerad mapp.
Sidindelning i meddelandelistor
För stora brevlådor, använd ListMessagesByPage för att ladda meddelanden i mindre block.
Följande kodexempel visar hur man implementerar sidindelning för att hämta stora mängder meddelanden från en Exchange Server‑inkorg.
- Till att börja med skapar den flera testmeddelanden på servern.
- Sedan använder den ListMessagesByPage metod för att hämta meddelanden i mindre satser (5 meddelanden per sida i detta fall), iterera genom alla sidor tills den sista sidan nås.
- Slutligen verifierar koden att alla meddelanden har hämtats framgångsrikt genom att räkna det totala antalet objekt över alla sidor.
Hämta meddelandetypinformation
Använd ExchangeMessageInfo->MessageInfoType för att avgöra den underliggande Exchange‑meddelandetypen (t.ex. e‑post, mötesförfrågan, osv.).
Följande kodexempel visar hur man ansluter till en Exchange Server och hämtar meddelandetypinformation från mappen Borttagna objekt.
Spara meddelanden med Exchange Web Services (EWS)
Aspose.Email gör det möjligt att hämta meddelanden från en Exchange Server‑brevlåda och spara dem i flera format, såsom EML, minnesströmmar och MSG. Exemplen nedan visar hur man hämtar meddelandeinformation och lagrar meddelanden med hjälp av IEWSClient API.
Spara meddelanden som EML‑filer
För att spara brevlådemeddelanden som EML‑filer:
- Skapa en IEWSClient exemplar med giltiga referenser.
- Anropa ListMessages() för att hämta ett ExchangeMessagesInfoCollection.
- Loopa igenom samlingen för att komma åt varje meddelandes unika URI.
- Anropa SaveMessage() för att lagra varje meddelande på disk i EML‑format.
Följande kodexempel visar hur man sparar e‑postmeddelanden från en Exchange Server‑inkorg som enskilda EML‑filer lokalt med Aspose.Email för C++.
Spara meddelanden till en minnesström
Istället för att skriva till disk kan du spara meddelanden i en minnesström—användbart för att lagra e‑post i en databas eller bearbeta dem i minnet.
Följande kodexempel visar hur man sparar e‑postmeddelanden från en Exchange Server‑inkorg till minnesströmmar.
Spara meddelanden i MSG-format
För att spara meddelanden som MSG:
- Hämta meddelandet med FetchMessage(), vilket returnerar en MailMessage.
- Anropa MailMessage::Save() med MSG‑sparalternativ.
Följande kodexempel visar hur man hämtar och sparar e‑postmeddelanden från en Exchange Server‑inkorg som Outlook MSG‑formatfiler.
Hämta meddelandedetaljer med meddelande‑URI
När endast ett meddelandes unika URI är tillgängligt kan du fortfarande hämta hela ExchangeMessageInfo objekt. Den IEWSClient::ListMessages() överkursen accepterar en lista med meddelande‑ID:n (URI:er) och returnerar ett ExchangeMessageInfoCollection. Använd den här funktionen när du lagrar eller mottar meddelande‑URI:er externt och behöver läsa metadata (ämne, avsändare, storlek osv.) utan att hämta hela meddelanden.
Följande kodexempel visar hur man skapar flera e‑postmeddelanden på en Exchange Server och sedan hämtar deras meddelandeinformation med unika identifierare.
Hämta fullständigt meddelandeinnehåll
ListMessages() returnerar sammanfattande information (ämne, avsändare, ID:n). För att ladda fullständigt meddelandeinnehåll — kropp, rubriker, bifogade filer — använd FetchMessage().
Följande kodexempel visar hur man hämtar kompletta meddelanden från en Exchange Server‑inkorg och extraherar bifogningsinformation:
- Skapa en IEWSClient instans.
- Anropa ListMessages() för att få grundläggande meddelandemetadata.
- Extrahera varje meddelandes UniqueUri.
- Anropa FetchMessage() för att hämta fullständig meddelandainformation.
Hämta meddelandestorlek (utan att ladda ner hela meddelandet)
Aspose.Email tillhandahåller meddelandestorleksinformation utan att hämta hela e‑posten, via ExchangeMessageInfo::Size egenskap.
Detta är användbart för:
- brevlådestatistik
- kvotberäkningar
- filtrering av stora meddelanden innan nedladdning
Följande kodexempel visar hur man listar och visar meddelandemetadata inklusive storlek från en Exchange Server‑inkorg.
Ladda ner e‑post från Exchange offentliga mappar
Exchange offentliga mappar möjliggör lagring av delade meddelanden mellan användare.
Aspose.Email IEWSClient tillåter dig att utföra följande operationer med dessa mappar och meddelanden som lagras i dem:
- Lista offentliga mappar
- Bläddra i undermappar rekursivt
- Ladda ner meddelanden och spara dem (t.ex. som MSG‑filer)
Obs: Microsoft Exchange Server 2007 eller senare krävs, eftersom tidigare versioner inte stöder EWS.
Följande kodexempel visar hur man laddar ner meddelanden från alla offentliga mappar och deras undermappar på en Exchange Server rekursivt, och sparar dem som Outlook MSG‑filer lokalt.
Flytta meddelanden mellan Exchange‑mappar
Du kan flytta meddelanden från en Exchange‑mapp till en annan med hjälp av IEWSClient::MoveItem metod. Den kräver:
- Det unika URI‑t för meddelandet som ska flyttas.
- Den mottagande mappens unika URI.
Följande kodexempel visar hur man filtrerar och flyttar specifika e‑postmeddelanden från en Exchange Server‑inkorg till en annan mapp baserat på innehållskriterier.
- Anslut till Exchange Server med EWS-referenser.
- Hämta brevlådsinformation (mapp‑URI:er).
- Lista alla meddelanden från Inkorgen.
- Iterera genom varje meddelande.
- Kontrollera om ämnet innehåller "process this message".
- Flytta matchande meddelanden till mappen Borttagna objekt.
- Skriv ut bekräftelse för varje flyttat meddelande.
Radera meddelanden från en Exchange‑mapp
Du kan ta bort e‑postmeddelanden från en mapp med hjälp av IEWSClient->DeleteMessage metod. Den tar meddelandets unika URI som parameter.
Följande kodexempel visar hur man filtrerar och raderar specifika e‑postmeddelanden från en Exchange Server‑inkorg baserat på ämneskriterier.
- Iterera genom Inkorgsmeddelanden.
- Bearbeta meddelanden baserat på vissa kriterier (i detta exempel hittar vi ett nyckelord i meddelandets ämne).
- Radera matchande meddelanden.
Kopiera meddelanden till en annan Exchange‑mapp
Använd IEWSClient::CopyItem för att duplicera ett meddelande till en annan mapp. Den överlagrade versionen returnerar URI:n för den nyss skapade kopian.
Följande kodexempel visar hur man skapar ett e‑postmeddelande på en Exchange Server och kopierar det till en annan mapp.