Berichten verzenden, lezen en organiseren op Exchange‑server
Exchange‑mailbox‑informatie ophalen met EWS
Aspose.Email stelt u in staat mailbox‑details op te halen uit Microsoft Exchange met behulp van de IEWSClient klasse. Door de GetMailboxInfo() methode, retourneert de client een ExchangeMailboxInfo object met handige map‑URI’s zoals Mailbox, Inbox, Drafts en Sent Items.
Om verbinding te maken met de Exchange‑server via Exchange Web Services (EWS), gebruik de IEWSClient klasse. Deze klasse gebruikt EWS om verbinding te maken met en items te beheren op een Exchange‑server.
Het volgende codefragment toont hoe u mailbox‑informatie opvraagt met behulp van de exchange web services.
E-mailberichten verzenden via EWS
U kunt e-mails verzenden via Exchange door de IEWSClient->Send() methode. Het neemt een MailMessage object en dient het rechtstreeks in via de server met EWS.
Het volgende codevoorbeeld toont hoe u een HTML‑e‑mailbericht via een Exchange‑server verzendt met Exchange Web Services (EWS) en Aspose.Email voor C++. Het laat het volledige proces zien van het tot stand brengen van een verbinding met Exchange, het maken van een e‑mail met afzender, ontvanger, onderwerp en HTML‑inhoud, en vervolgens het verzenden van het bericht met de Send‑methode van de EWS‑client.
E-mails lezen uit het postvak van een andere gebruiker
Sommige accounts op Exchange-servers hebben het recht om meerdere postvakken te benaderen, en sommige gebruikers hebben meerdere e-mailaccounts op dezelfde Exchange-server. In beide gevallen kunnen gebruikers met Aspose.Email andere gebruikerspostvakken benaderen. De API biedt een mechanisme om mappen en e-mails uit andere postvakken te benaderen met behulp van de IEWSClient klasse. Deze functionaliteit kan worden bereikt met de overlaste GetMailboxInfo() methode en het e-mailadres van de gebruiker als parameter opgeeft.
De volgende codefragment toont hoe u e-mails kunt lezen met behulp van de IEWSClient klasse.
Berichten weergeven met EWS
Aspose.Email voor C++ stelt u in staat om berichtmetadata op te halen uit Exchange‑server postvakken via de IEWSClient. Met de EWS‑gebaseerde ListMessages API kunt u berichten uit elke map weergeven, berichtmetadata doorbladeren en paginering implementeren voor grote postvakken.
Berichten uit het Postvak‑In weergeven
Gebruik ListMessages om basisberichtinformatie op te halen, zoals onderwerp, afzender, ontvangers en bericht‑ID uit de Postvak‑In of een andere map.
Het volgende codevoorbeeld toont hoe u een lijst maakt en basisinformatie weergeeft voor alle berichten op een Exchange‑server.
- Maak een instantie van IEWSClient.
- Roep ListMessages met de doelmap-URI.
- Itereren door ExchangeMessageInfoCollection.
Berichten uit elke map weergeven
ListMessages accepteert elke geldige map‑URI, waardoor u items kunt weergeven uit Verwijderde items, Concepten, Verstuurde items of aangepaste mappen. Gebruik de IEWSClient->get_MailboxInfo->xxxFolderUri eigenschap om de URI van verschillende mappen op te halen.
Het volgende codevoorbeeld toont hoe u verschillende Exchange‑server map‑URI’s kunt benaderen en berichten uit een opgegeven map kunt ophalen.
Paginering bij Berichtenlijst
Voor grote postvakken, gebruik ListMessagesByPage om berichten in kleinere blokken te laden.
Het volgende codevoorbeeld toont hoe paginering kan worden geïmplementeerd voor het ophalen van een groot aantal berichten uit een Exchange‑server Postvak‑In.
- Eerst maakt het meerdere testberichten op de server.
- Vervolgens gebruikt de ListMessagesByPage methode om berichten in kleinere batches op te halen (in dit geval 5 berichten per pagina), waarbij door alle pagina’s wordt itereren tot de laatste pagina is bereikt.
- Tot slot controleert de code of alle berichten succesvol zijn opgehaald door het totale aantal items over alle pagina’s te tellen.
Berichttype‑informatie ophalen
Gebruik ExchangeMessageInfo->MessageInfoType om het onderliggende Exchange‑berichttype te bepalen (bijv. e‑mail, vergaderverzoek, enz.).
Het volgende codevoorbeeld toont hoe u verbinding maakt met een Exchange‑server en berichttype‑informatie ophaalt uit de map Verwijderde items.
Berichten opslaan met Exchange Web Services (EWS)
Aspose.Email stelt u in staat berichten uit een Exchange‑serverpostvak op te halen en ze op te slaan in meerdere formaten, zoals EML, geheugen‑streams en MSG. De voorbeelden hieronder laten zien hoe u berichtinformatie kunt ophalen en berichten kunt opslaan met behulp van de IEWSClient API.
Berichten opslaan als EML‑bestanden
Om postvak‑berichten op te slaan als EML‑bestanden:
- Maak een IEWSClient instantie op te halen met geldige inloggegevens.
- Roep ListMessages() om een ExchangeMessagesInfoCollection.
- Loop door de collectie om de unieke URI van elk bericht te benaderen.
- Roep SaveMessage() om elk bericht op schijf op te slaan in EML‑formaat.
Het volgende codevoorbeeld toont hoe u e‑mailberichten uit een Exchange‑server Postvak‑In lokaal opslaat als afzonderlijke EML‑bestanden met Aspose.Email voor C++.
Berichten opslaan in een geheugen‑stream
In plaats van naar schijf te schrijven, kunt u berichten opslaan in een geheugen‑stream—handig voor het opslaan van e‑mails in een database of verwerking in het geheugen.
Het volgende codevoorbeeld toont hoe u e‑mailberichten uit een Exchange‑server Postvak‑In opslaat in geheugen‑streams.
Berichten opslaan in MSG-indeling
Om berichten op te slaan als MSG:
- Haal het bericht op met FetchMessage(), die een MailMessage.
- Roep MailMessage::Save() met MSG‑opslaallocaties.
Het volgende codevoorbeeld toont hoe u e‑mailberichten uit een Exchange‑server Postvak‑In ophaalt en opslaat als Outlook‑MSG‑bestanden.
Berichtdetails ophalen via bericht‑URI
Wanneer alleen een unieke bericht‑URI beschikbaar is, kunt u nog steeds de volledige ExchangeMessageInfo objecten. De IEWSClient::ListMessages() overload accepteert een lijst van bericht‑ID’s (URI’s) en retourneert een ExchangeMessageInfoCollection. Gebruik deze functie wanneer u bericht‑URI’s extern opslaat of ontvangt en metadata (onderwerp, afzender, grootte, enz.) moet laden zonder de volledige berichten op te halen.
Het volgende codevoorbeeld toont hoe u meerdere e‑mailberichten aanmaakt op een Exchange‑server en vervolgens hun berichtinformatie ophaalt met unieke identifiers.
Volledige berichtinhoud ophalen
ListMessages() geeft samenvattende informatie (onderwerp, afzender, ID’s) terug. Om volle berichtinhoud — body, headers, bijlagen — te laden gebruik FetchMessage().
Het volgende codevoorbeeld toont hoe u volledige berichten uit een Exchange‑server Postvak‑In ophaalt en bijlage‑informatie extraheert:
- Maak een IEWSClient instantie.
- Roep ListMessages() om basis‑berichtmetadata te krijgen.
- Extraheer de unieke URI van elk bericht.
- Roep FetchMessage() om volledige berichtdetails op te halen.
Berichtgrootte ophalen (zonder het volledige bericht te downloaden)
Aspose.Email levert berichtgrootte‑informatie zonder de volledige e‑mail op te halen, via de ExchangeMessageInfo::Size eigenschap.
Dit is nuttig voor:
- postvak‑statistieken
- quota‑berekeningen
- grote berichten filteren vóór het downloaden
Het volgende codevoorbeeld toont hoe u berichtmetadata, inclusief grootte, uit een Exchange‑server Postvak‑In weergeeft.
E-mails downloaden uit Exchange‑publieke mappen
Openbare Exchange‑mappen maken het mogelijk gedeelde berichten tussen gebruikers op te slaan.
Aspose.Email IEWSClient laat u de volgende bewerkingen uitvoeren met deze mappen en de daarin opgeslagen berichten:
- Openbare mappen weergeven
- Submappen recursief doorbladeren
- Berichten downloaden en opslaan (bijv. als MSG‑bestanden)
Opmerking: Microsoft Exchange Server 2007 of nieuwer is vereist, omdat oudere versies geen EWS ondersteunen.
Het volgende codevoorbeeld toont hoe u berichten van alle openbare mappen en hun submappen op een Exchange‑server recursief downloadt en lokaal opslaat als Outlook‑MSG‑bestanden.
Berichten verplaatsen tussen Exchange‑mappen
U kunt berichten van de ene Exchange‑map naar de andere verplaatsen met behulp van de IEWSClient::MoveItem methode. Het vereist:
- De unieke URI van het te verplaatsen bericht.
- De unieke URI van de doelmap.
Het volgende codevoorbeeld toont hoe u specifieke e‑mailberichten uit een Exchange‑server Postvak‑In filtert en verplaatst naar een andere map op basis van inhoudscriteria.
- Maak verbinding met Exchange‑server met EWS‑referenties.
- Haalt postvak‑informatie op (map‑URI’s).
- Geef alle berichten uit het Postvak‑In weer.
- Itereer door elk bericht.
- Controleer of het onderwerp "process this message" bevat.
- Verplaats overeenkomende berichten naar de map Verwijderde items.
- Uitvoerverificatie tonen voor elk verplaatst bericht.
Berichten verwijderen uit een Exchange‑map
Je kunt e-mailberichten uit een map verwijderen met behulp van de IEWSClient->DeleteMessage methode. Het neemt de unieke URI van het bericht als parameter.
Het volgende codevoorbeeld toont hoe u specifieke e‑mailberichten uit een Exchange‑server Postvak‑In filtert en verwijdert op basis van een onderwerpcriterium.
- Itereer door Postvak‑In‑berichten.
- Verwerk berichten op basis van bepaalde criteria (in dit voorbeeld zoeken we een trefwoord in het onderwerp van het bericht).
- Verwijder overeenkomende berichten.
Berichten kopiëren naar een andere Exchange‑map
Gebruik IEWSClient::CopyItem om een bericht te dupliceren in een andere map. De overladen versie retourneert de URI van de nieuw aangemaakte kopie.
Het volgende codevoorbeeld toont hoe u een e‑mailbericht aanmaakt op een Exchange‑server en naar een andere map kopieert.