Naar de documentatie

Exchange wordt later opnieuw gebouwd en is niet beschikbaar via de API of CLI. Beschikbaarheid van deze release

Praktische werkwijzen

Markdown

Exchange valt buiten deze API/CLI-release. Eventuele historische Exchange-voorbeelden in deze gids zijn niet beschikbaar; dit zegt niets over bestaande portaalfuncties. Zie het actuele releasebereik.

Gemachtigden, agenda's, verzendlijsten en ruimtes

Beheer mailboxtoegang en agenda's van collega's, verzendlijsten en vergaderruimtes vanuit hetzelfde portaal, de klanten-API of de CLI. Deze vier functies zijn gratis: geen werkplek, productbestelling, factuurregel of opslagpool. Een gedeelde mailbox met eigen postvak is een andere, betaalde functie; zie de gedeelde-mailboxhandleiding.

Alle personen, adressen en middelen moeten bij hetzelfde bedrijf en dezelfde mailserver horen. Bestaande rechten, actuele bedrijfsbinding en workspace-resourcebeperkingen blijven gelden. De API vraagt workspace.mailboxes:read voor lezen en workspace.mailboxes:write voor wijzigen, zonder orders:commit of andere financiële scope. Alleen Versturen als inschakelen en een ruimte definitief opheffen vragen bovendien recente sterke persoonlijke verificatie en de vrijgave voor gevoelige API-acties. Een servicetoken kan die menselijke goedkeuring niet vervangen.

1. Gemachtigden op een persoonlijke mailbox

Open de gewone mailbox in de Workspace en ga naar Gemachtigden. Kies de collega en beoordeel mailtoegang en agendatoegang afzonderlijk. Onder Deze persoon mag in zie je dezelfde koppeling vanaf de andere kant.

Mailniveau Wat de collega kan
none Geen mailtoegang; alleen agendatoegang kan nog steeds worden ingesteld
read Mail lezen en gelezen/ongelezen zetten; geen verzendmachtiging
full Mail lezen, toevoegen, verwijderen, markeren en submappen maken; niet de gedeelde hoofdmap zelf hernoemen of verwijderen

Volledige toegang geeft ook versturen namens. De ontvanger ziet bijvoorbeeld “Anna namens Ronald”; de mailserver houdt dit binnen ongeveer een minuut bij. Versturen als is een afzonderlijke, sterk te verifiëren keuze die alleen bij full mag worden ingeschakeld: de ontvanger ziet dan alleen Ronald. Verlagen naar read of verwijderen trekt ook deze Send As-machtiging in. Het portaal schrijft niet rechtstreeks in de serverlijst voor “namens”.

Als alleen Versturen als uitgaat en Volledige toegang blijft staan, blijft versturen namens beschikbaar. De server voegt dan Sender: Anna toe; de ontvanger ziet weer wie werkelijk verstuurde. Het volledig intrekken of verlagen van de mailtoegang neemt ook deze namens-bevoegdheid weg zodra de serveragent dat heeft verwerkt. Verwacht dus geen SMTP-weigering alleen doordat de afzonderlijke Send As-schakelaar uitgaat.

Bij SMTP blijft het envelopadres (MAIL FROM) het eigen adres van de ingelogde gemachtigde; de zichtbare From: is het adres van de eigenaar. De gecontroleerde machtiging staat dit verschil toe. De mailboxrechten geven geen toestemming om het envelopadres van de eigenaar als eigen adres te gebruiken.

Mailtoegang geldt voor de mappen van de eigenaar. Later gemaakte mappen worden door de herstelstap meegenomen; Stalwart erft die rechten niet vanzelf. Rechten die iemand zelf in de webmail instelt worden als ingesteld door de gebruiker getoond. Een beheerder kan die expliciet weghalen, maar de gewone herstelstap wist ze niet uitsluitend omdat er geen portaalrij voor bestaat. Een waarneming is geen nieuwe goedkeuring of opdracht. Afwijkende rechten per map of agenda worden als custom getoond; dat is alleen een leeslabel, geen instelbaar machtigingsniveau. De omgekeerde weergave gebruikt de laatst bekende waarnemingen.

2. Agenda's delen

Agendatoegang gebruikt dezelfde eigenaar/gemachtigde-koppeling en kan bestaan zonder mailtoegang:

calendar_level Recht
none Geen agendatoegang
freebusy Beschikbaarheid bekijken
read Agenda en afspraken lezen
write Agenda beheren, inclusief afspraken wijzigen en verwijderen

De keuze geldt voor de agenda's van de eigenaar. Ook later toegevoegde agenda's worden door de herstelstap meegenomen. Andere gemachtigden blijven behouden; een wijziging patcht uitsluitend de geselecteerde persoon.

3. Verzendlijsten

Op de Workspacepagina staat Gedeelde mailboxen en verzendlijsten. Een gedeelde mailbox is één postvak waarin meerdere mensen werken. Een verzendlijst, zoals team@voorbeeld.nl, stuurt een kopie naar ieder lid en heeft geen eigen postvak of login.

Kies een actief domein, naam en eventuele aliassen, en selecteer bestaande adressen als leden. Leden kunnen gewone mailboxen, gedeelde mailboxen of hun aliassen zijn, maar uitsluitend van hetzelfde bedrijf op dezelfde server. Typ geen extern adres in. Een andere verzendlijst is geen toegestaan lid in deze versie; zo ontstaat ook geen lijstenlus.

Iedereen kan naar de lijst mailen, ook van buiten. Er is geen instelling “alleen leden” of “alleen dit bedrijf”. De server herschrijft afzenders niet via SRS; doorsturen naar externe leden valt daarom buiten het contract. Een lijst kan geen adres gebruiken dat al van een mailbox, alias, gedeelde mailbox of ruimte is.

Je kunt naam, aliassen en leden wijzigen en de lijst opheffen. Een aliasarray vervangt de eigen volledige aliasset. Een afzonderlijke lidmutatie verandert alleen dat lid en bewaart alle andere ontvangers. Opheffen stopt de doorsturing; het verwijdert geen mail bij de ontvangers.

4. Ruimtes en middelen

Onder Ruimtes en middelen kies je een adres, naam, soort (room of equipment), eventuele capaciteit en locatie. Kies desgewenst bestaande collega's als ruimtebeheerders. Gewone bedrijfscollega's op dezelfde server krijgen standaard leestoegang op de ruimteagenda; beheerders mogen er ook in wijzigen. De rechten op alle betrokken workspaces worden gecontroleerd, ook bij de standaardlezers. Een beperkt token kan dus niet langs deze weg naar verborgen workspaces delen.

Nodig het ruimteadres uit voor een afspraak. De ruimteagent accepteert een vrij tijdvak en weigert een overlap met een eerder geaccepteerde afspraak, doorgaans binnen een minuut. Bij een herhalende afspraak controleert hij alleen het eerste voorkomen. Ook antwoorden van de ruimte vallen onder de uitgaande limiet van 25 berichten per uur per account.

Een ruimte is geen persoonlijke werkplek. Het portaal bewaart of toont geen bruikbaar wachtwoord en biedt geen instellingen-PDF, Drive of Conserio aan. Definitief opheffen vraagt recente sterke persoonlijke verificatie en het volledig ingetikte adres; lees de waarschuwing over de bijbehorende agenda en inhoud voordat je bevestigt.

API-paden en ETags

Alle paden hieronder beginnen met /api/v1/accounts/{account}/workspaces/{workspace}.

Onderdeel Paden
Gemachtigden GET /mailboxes/{mailbox}/delegates, PUT/DELETE /mailboxes/{mailbox}/delegates/{delegate}
Omgekeerde toegang GET /mailboxes/{mailbox}/delegations
Verzendlijsten GET/POST /mailing-lists, GET/PATCH/DELETE /mailing-lists/{list}
Lijstleden GET /mailing-lists/{list}/members, PUT/DELETE /mailing-lists/{list}/members/{member}
Ruimtes GET/POST /rooms, GET/PATCH/DELETE /rooms/{room}
Ruimtebeheerders GET /rooms/{room}/managers, PUT/DELETE /rooms/{room}/managers/{mailbox}

Een lijstsleutel is getypeerd: mailbox-23, shared_mailbox-31, alias-12 of shared_alias-9. Een gelijk nummer in een andere tabel is een ander object. Ruwe e-mailadressen, externe ontvangers en lijst-als-lid worden niet als sleutel geaccepteerd.

Elke schrijfactie gebruikt Idempotency-Key en de actuele If-Match. Voor POST gebruik je de workspace-ETag, voor een lijst of ruimte de eigen resource-ETag, en voor een gemachtigde de ETag van de eigenaarsmailbox. GET delegates retourneert die ook als meta.mailbox_version. Lees na een wijziging de nieuwe versie; de samenwerking-revisie verandert ook als twee wijzigingen in dezelfde seconde plaatsvinden. Een 412 vraagt opnieuw lezen en beoordelen, geen automatische overschrijving.

De API controleert ieder doel onafhankelijk. Een andere bedrijfscollega, een lid, aliasdomein of ruimtebeheerder buiten de toegestane workspacegrenzen krijgt 404. Ook de oude leden en aliassen tellen mee bij vervanging of verwijderen: een beperkte verbinding kan geen verborgen bestaande koppelingen weghalen door een lege lijst op te sturen. Lezen toont uitsluitend objecten binnen het huidige leesbereik. Privé-server-ID's, providerantwoorden, wachtwoorden en goedkeuringsbewijzen worden niet gepubliceerd.

Voorbeelden

Mail en agenda in één goedgekeurde body (delegate.json):

{"level":"full","send_as":false,"calendar_level":"write"}
binadit workspace delegates list 7 23 --account 42
binadit workspace delegates set 7 23 24 --account 42 --version '<eigenaar-ETag>' --input delegate.json --dry-run
binadit workspace delegates set 7 23 24 --account 42 --version '<eigenaar-ETag>' --input delegate.json --yes
binadit workspace delegates access 7 24 --account 42
binadit workspace delegates remove 7 23 24 --account 42 --version '<nieuwe eigenaar-ETag>' --yes

Voor alleen agenda-beschikbaarheid: {"level":"none","send_as":false,"calendar_level":"freebusy"}. Voor Send As moet level gelijk zijn aan full; zet de schakelaar pas na de afzonderlijke sterke menselijke beoordeling op true.

Een lijst aanmaken (list.json):

{"domain_id":12,"local_part":"team","display_name":"Team verkoop","aliases":[],"members":[{"kind":"mailbox","id":23},{"kind":"shared_mailbox","id":31}]}
binadit workspace lists create 7 --account 42 --version '<workspace-ETag>' --input list.json --yes
binadit workspace lists get 7 9 --account 42
binadit workspace lists members add 7 9 alias 12 --account 42 --version '<lijst-ETag>' --yes
binadit workspace lists members remove 7 9 mailbox 23 --account 42 --version '<nieuwe lijst-ETag>' --yes

Met curl gebruik je dezelfde getypeerde sleutel en geen ruwe ontvangergegevens:

curl --fail-with-body -X PUT "$BINADIT_ENDPOINT/api/v1/accounts/42/workspaces/7/mailing-lists/9/members/mailbox-23" \
  -H "Authorization: Bearer $BINADIT_ACCESS_TOKEN" -H 'Content-Type: application/json' \
  -H 'If-Match: "<lijst-ETag>"' -H 'Idempotency-Key: team-member-reviewed-20261031' --data-binary '{}'

Een ruimte aanmaken (room.json):

{"domain_id":12,"local_part":"vergaderzaal","display_name":"Vergaderzaal 1","kind":"room","capacity":8,"location":"Eerste verdieping","manager_ids":[23]}
binadit workspace rooms create 7 --account 42 --version '<workspace-ETag>' --input room.json --yes
binadit workspace rooms list 7 --account 42
binadit workspace rooms managers add 7 11 24 --account 42 --version '<ruimte-ETag>' --yes
binadit workspace rooms delete 7 11 --account 42 --version '<nieuwe ruimte-ETag>' --confirm-address 'vergaderzaal@voorbeeld.nl' --yes

update WORKSPACE RESOURCE --input FILE gebruikt PATCH. Een lijst wijzigen accepteert display_name, aliases en members; een ruimte wijzigen display_name, kind, capacity, location en manager_ids. De opgegeven collecties vervangen hun eigen volledige set. list ondersteunt --limit, --cursor en --all; members list en managers list tonen de bijbehorende zichtbare doelen. Producten, prijzen, wachtwoorden en financiële velden zijn geen toegestane invoer.

Wachtrij, herstel en opruimen

Een geaccepteerde aanvraag retourneert task_ids, delivery_status: queued en free: true. Een vastgehouden gratis taak met onzekere serveruitkomst krijgt requires_reconciliation; daarvoor hoeft geen factuur te worden betaald. Dat is nog geen bevestiging van de leverancier. Volg de oorspronkelijke operatie met binadit operations watch OPERATION_UUID --account 42 en lees de actuele resource. Extra operations:read is daarvoor nodig. Preview met --dry-run of X-Binadit-Dry-Run: true maakt geen resource, goedkeuring of leverancierseffect aan.

Bewaar bij een timeout de oorspronkelijke operatie, exacte invoer en sleutel. Een onzekere aanmaak of vernietiging wordt niet blind herhaald. De eigen source/consent bewijst de werkelijk bedoelde mailboxen en verbinding; een actuele rol alleen vervangt dat originele bewijs niet. Herstel controleert actuele identiteit, rechten, bedrijfsgrenzen en serverconfiguratie, behoudt andere gebruikersdelingen en repareert uitsluitend expliciet beheerde rechten. Het portaal schrijft nooit in binadit-send-on-behalf.

Blokkeren of verwijderen van een gewone mailbox ruimt eerst machtigingen in beide richtingen en lijstlidmaatschappen op de server op. Verwijderen of verplaatsen mag geen resterende bedrijfsoverschrijdende toegang achterlaten. Verander geen rijen, bron-ID's of tokens om een taak met onzekere uitkomst door te drukken. Bij een controlefout beoordeelt support de oorspronkelijke aanvraag.

Een hoofdadres wijzigen, een gebruikte alias verwijderen of een Workspace naar een ander bedrijf verplaatsen kan daarom 409 geven. Trek eerst de betrokken machtigingen, lijstverwijzingen en ruimteafhankelijkheden in en wacht op de oorspronkelijke synchronisatietaak. Ook een mislukte of geannuleerde taak met onzekere serveruitkomst blijft zo'n wijziging blokkeren totdat support die uitkomst heeft bevestigd. Bestaande aliassen behouden bij bewerken hun ID. Voor beheerders en ontwikkelaars staan de technische herstelvoorwaarden in het repodocument docs/WORKSPACE-MAIL-DEPENDENCY-GUARDS.md.

Nieuwe mappen, agenda's en standaardlezers van ruimtes worden ieder uur gecontroleerd. Het beheercommando workspace:mail-collaboration-reconcile gebruikt uitsluitend de oorspronkelijke ondertekende toestemming en actuele rechten; het maakt geen nieuwe aanmelding of ruimere verbinding. --dry-run toont de aantallen zonder taken. --limit bepaalt de databasechunkgrootte, zodat ook records na de eerste pagina aan bod komen. Dit commando is serverbeheer; klanten gebruiken de hierboven beschreven portaal-, API- of CLI-acties.

Dit zijn Stalwart Workspace-functies. Zij schakelen de uitgestelde Exchange-providerintegratie niet aan. Zie actuele beschikbaarheid en de agenthandleiding.