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.

Portalmail bewust testen

De mailtest verstuurt één vast testbericht naar het huidige geverifieerde loginadres van de uitvoerende interne beheerder. Er is geen instelbare ontvanger, onderwerp, body of bijlage. Het bericht bevat alleen de oorspronkelijke testreferentie, zonder klantgegevens of geheimen. Een persoonlijke verbinding met actuele interne beheerrechten en recente passkeyverificatie is vereist; serviceverbindingen kunnen geen mailtest uitvoeren.

accepted betekent dat de mailtransportaanroep ontvangst heeft bevestigd. Het bewijst geen inboxbezorging. Controleer je eigen inbox en spammap. De test verandert geen SMTP-instellingen, klantgegevens, facturen, wachtwoorden of leveranciersdiensten.

Portal

Open /test-application-email-system. Het openen van de pagina verstuurt niets. Kies Ontvanger en huidige versie controleren, verifieer je passkey en controleer het getoonde eigen adres. Vink de bewuste bevestiging aan en kies Eén testbericht aanvragen.

De browser bewaart het oorspronkelijke testnummer vóór verzending. Bij een onzekere response of na herladen gebruikt Oorspronkelijke poging lezen uitsluitend datzelfde nummer. Er volgt geen automatische verzending, polling of nieuwe poging na vernieuwde verificatie. Als je passkey verloopt, lees en verifieer opnieuw en bevestig vervolgens zelf de verzending.

Er geldt één nieuwe poging per vijf minuten, over alle beheerbedrijven en verbindingen van dezelfde beheerder. Onderzoek een onzekere vorige uitkomst eerst. Voor een bewuste nieuwe poging voer je de getoonde oorspronkelijke referentie in en kies je de afzonderlijke beoordelingsknop. De server controleert opnieuw de afkoelperiode en de exacte vorige poging. Verwijder een lokaal bewaarde referentie niet om een onbekende uitkomst te omzeilen.

API

Alle paden staan onder /api/v1/accounts/{administratiecontext}. Gebruik admin:read voor inspectie/status en admin:write voor aanvragen. De API-, schrijf-, gevoelige- en beheerflags blijven gelden. De administratiecontext is je eigen goedgekeurde beheerbedrijf.

Methode Pad Uitkomst
GET /admin/mail-test Eigen actor_id, vaste recipient, version/ETag en maximaal tien eigen pogingen binnen deze context
POST /admin/mail-tests Eén expliciete aanvraag met dezelfde oorspronkelijke UUID
GET /admin/mail-tests/{intent_id} Alleen veilige status van de oorspronkelijke eigen poging binnen dezelfde context; geen mail

Lees eerst de ontvanger en actuele versie. Stuur de ETag als If-Match, één duurzame Idempotency-Key en uitsluitend:

{"intent_id":"1fe95bbe-8449-4ea3-a6b2-3f013a2047bc","confirm_user_id":8}

confirm_user_id moet de daadwerkelijk uitvoerende beheerder uit GET zijn. Bewaar UUID, body en idempotentiesleutel vóór de POST. dry_run:true voert de actuele controles uit zonder poging, operatie of verzending. Een ontbrekende versie geeft 428; een gewijzigde versie 412; een te snelle nieuwe poging 429. Eigen ontvanger- of berichtvelden geven 422.

Een duurzame poging bestaat voordat SMTP kan beginnen. Dezelfde UUID kan geen tweede SMTP-aanroep starten, ook niet met een andere HTTP-idempotentiesleutel. Bij een verloren response lees je eerst de oorspronkelijke UUID en de bestaande operatie. Een 404 is geen bewijs dat een gelijktijdige oorspronkelijke aanvraag nooit zal committen: bewaar de referentie en onderzoek diezelfde poging later.

Status Betekenis
prepared Oorspronkelijke poging vastgelegd; geen bevestigde aflevering
dispatching Een transportaanroep kan onderweg of onderbroken zijn
uncertain Acceptatie niet bevestigd; geen automatische herhaling
blocked De actuele controle blokkeerde verzending
accepted Transportacceptatie bevestigd; inboxbezorging blijft onbewezen

requires_reconciliation:true vraagt onderzoek van de oorspronkelijke poging. Na beoordeling kan een afzonderlijke nieuwe UUID worden aangevraagd, met replace_attempt_id gelijk aan de exacte laatste onopgeloste referentie. De CLI gebruikt hiervoor --replace-attempt OORSPRONKELIJKE_UUID bij de bewust nieuwe send-aanvraag. Dit is een bewuste nieuwe mailaanvraag; de afkoelperiode en alle huidige controles blijven gelden.

CLI en AI-agents

binadit admin mail-test get --account 1
binadit admin mail-test send --account 1 \
  --intent-id 1fe95bbe-8449-4ea3-a6b2-3f013a2047bc \
  --confirm-user 8 --version '<data.version uit get>' --dry-run
binadit admin mail-test send --account 1 \
  --intent-id 1fe95bbe-8449-4ea3-a6b2-3f013a2047bc \
  --confirm-user 8 --version '<dezelfde actuele data.version>' --yes
binadit admin mail-test status 1fe95bbe-8449-4ea3-a6b2-3f013a2047bc --account 1

Een agent kiest nooit een ander ontvangeradres en maakt na een onzekere uitkomst geen vervangende UUID. Controleer het expliciete beheerbedrijf, de eigen ontvanger en de huidige versie. Bewaar de oorspronkelijke referentie ook na afsluiten van de CLI. De CLI legt een privé metadata-marker vast vóór een echte POST; latere uitvoeringen met dezelfde UUID kunnen uitsluitend de oorspronkelijke status onderzoeken. De CLI toont alleen het vaste veilige statuscontract, geen SMTP-fouttekst of transportconfiguratie.

De mailtest gebruikt één afzonderlijk SMTP- of sendmailtransport. SMTP vereist TLS en certificaatverificatie; globale debugontvangers worden niet overgenomen. Log-, failover- en roundrobintransporten zijn voor deze expliciete test niet geschikt en geven gecontroleerd 503. Dit is een configuratievereiste, geen bewijs dat een bestaande externe mailserver live bereikbaar is.