← FAQ
FAQ

Mail

FAQ › EUZOS Desktop › Mail · English

Wat is het?

E-mail is de eigen mailapp van EUZOS (in het megamenu en het welkomstpaneel), met eigen code voor Microsoft 365 (Microsoft Graph) en algemeen IMAP/SMTP. Mail staat in het geheugen: een cache in het RAM, gewist bij afmelden; bij afmelden gaat een begrensde, versleutelde kopie van de cache naar de profielmap van de gebruiker, nooit naar de stick. Inloggen bij Microsoft gaat met de device code flow, gedeeld met de Verkenner (OneDrive, SharePoint) via één Microsoft-sessie. De console heeft mail (IMAP/SMTP testen) en microsoft (de gedeelde Microsoft-sessie).

Alleen EUZOS Desktop.

Hoe doe ik…?

Hoe voeg ik een Microsoft 365-account toe?

Kies in E-mail Account toevoegen › Microsoft 365. De app toont een korte code en het adres https://microsoft.com/devicelogin; open dat op een telefoon of pc, vul de code in en bevestig (Toestaan). Ook Outlook.com-accounts gaan via deze Microsoft-login (Outlook.com accepteert geen wachtwoorden meer op IMAP/SMTP).

Waarom zegt Microsoft "Admin approval required"?

Je organisatie laat gebruikers geen apps toestaan. De beheerder van de organisatie geeft één keer toestemming voor de hele organisatie (admin consent), via het adminconsent-adres of in Entra › Enterprise applications › EUZOS › Permissions › Grant admin consent. Zie docs/MAIL.md, "For IT admins".

Hoe voeg ik een IMAP-account toe (Gmail, Proton, andere)?

Account toevoegen › een andere aanbieder: naam, e-mailadres, gebruikersnaam, wachtwoord (een geheim veld; alleen in het geheugen), IMAP- en SMTP-server en poort. Het adres raadt de aanbieder en vult Gmail (imap.gmail.com:993, smtp.gmail.com:587; gebruik een app-wachtwoord) en Proton Mail Bridge (127.0.0.1, IMAP 1143 en SMTP 1025 met STARTTLS; vertrouw bij een Bridge op een andere pc zijn certificaat met \EOS\FW\EXTRA.PEM) vooraf in.

Moet ik op elke pc opnieuw bij Microsoft inloggen?

Nee. Na een geslaagde login wordt het refresh token van Microsoft versleuteld bewaard in de kluis op de profielserver (ms-refresh:<id>) en versleuteld in je profielmap. Nadat je op een pc inlogt, koppelt EUZOS het account vanzelf en toont "Gekoppeld aan Microsoft (automatisch)". Een nieuwe code is alleen nodig als Microsoft het token intrekt. IMAP-wachtwoorden worden nooit bewaard: na het inloggen toont de app Wachtwoord om het opnieuw in te vullen.

Hoe voeg ik een gedeelde mailbox toe?

Klik met de rechtermuisknop op het Microsoft 365-account in de linkerkolom (of houd het ingedrukt, of gebruik het tandwiel bij het gekozen account) en kies Instellingen. Onder Gedeelde mailboxen: Gedeelde mailbox toevoegen…, vul het adres in (bijvoorbeeld info@bedrijf.nl) en kies Toevoegen. Hij verschijnt als eigen boom onder het account; Verwijderen ernaast in dezelfde lijst haalt hem weg. Verzenden gaat eerst "als" de mailbox (Send As), anders "namens" (Send on Behalf); de Exchange-beheerder bepaalt welk recht je hebt. Ontbreekt de toestemming, dan toont de mailbox "Toestemming nodig: opnieuw inloggen".

Hoe komt mail vanzelf binnen, en hoe verwijder ik een mailbox?

Synchroniseren in de werkbalk haalt de getoonde map nu op. In de Instellingen van de mailbox (rechtermuisknop erop, of het tandwiel) kan Automatisch synchroniseren uit staan of elke 1, 5, 10 of 30 minuten; dat wordt per mailbox bewaard in je versleutelde profielmap. Mailbox verwijderen in dezelfde Instellingen vraagt eerst om bevestiging en haalt dan het account, de lokale kopie van de mail en de opgeslagen inloggegevens van deze pc (bij een Microsoft-account ook de gedeelde mailboxen); de mail op de server blijft staan.

Waarom worden afbeeldingen in een mail niet getoond?

Externe afbeeldingen zijn standaard geblokkeerd (privacy, trackingpixels). Een gele balk biedt Afbeeldingen tonen, dat de afbeeldingen van dat ene bericht laadt voor deze sessie. Ingesloten afbeeldingen (cid:) worden altijd getoond. HTML-mail wordt getekend door de eigen webengine van EUZOS, zonder JavaScript.

Hoe lees, verwijder en navigeer ik met het toetsenbord?

Pijl omhoog/omlaag verplaatst de selectie, Enter opent, Delete verplaatst het bericht naar Verwijderde items (zonder bevestiging; terug te halen uit de prullenbak), Esc sluit een formulier of gaat in een smal venster terug naar de lijst. Backspace verwijdert nooit mail. Een bericht telt als gelezen na 2 seconden in het leesvenster, of meteen als je het opent.

Hoe test ik een IMAP- of SMTP-server vanaf de console?

  • mail test <server>[:poort]: zonder in te loggen verbinden met TLS of STARTTLS en CAPABILITY (IMAP 993/143) of EHLO (SMTP 465/587/25) tonen.
  • mail imap <server>[:poort] <gebruiker> [smtp-server[:poort]]: inloggen (het wachtwoord wordt daarna gevraagd in een geheim veld), de mappen en de laatste 10 berichten van INBOX tonen.
  • mail send <smtp-server>[:poort] <gebruiker> <aan>: een testbericht versturen.

Het wachtwoord wordt nooit op de opdrachtregel getypt, dus het staat niet in de geschiedenis of het logboek. Via SSH verschijnt de vraag om het wachtwoord op het scherm van de pc zelf.

Hoe controleer ik de Microsoft-sessie vanaf de console?

microsoft (of microsoft status) toont de tenant van de Entra-app uit MSAPP.TXT en per account de toestand (bezig, wacht op bevestiging met de resterende seconden, ingelogd, fout). microsoft login start een login (de code verschijnt in de app E-mail), microsoft again <id> logt een account opnieuw in, microsoft forget <id> vergeet het (ook uit de kluis), microsoft graph <pad> doet een GET op Graph met het eerste account (toont alleen status en grootte), microsoft imap <id> controleert of er een token voor IMAP/SMTP (XOAUTH2) te krijgen is.

Waarom zegt de app "Microsoft 365 is op deze pc niet ingesteld"?

\EOS\FW\MSAPP.TXT ontbreekt of is ongeldig. Daarin staat de client-id van de Entra-app van EUZOS (voor iedereen dezelfde) en eventueel de tenant.

Details

  • Model: de app praat alleen met de trait euzos_mail::Mailbox (folders, list, message, attachment, mark, move_to, delete, send, save_draft, close); GraphMailbox (Microsoft 365) en ImapMailbox (IMAP/SMTP) implementeren hem. De aanroepen blokkeren en draaien op een eigen thread, één actie tegelijk per account.
  • Cache (euzos_mail::Cache): hoogstens 5000 kopteksten per map en 64 MiB inhoud; het minst recent gebruikte gaat eruit en wordt gewist. Bij afmelden gaat een begrensde kopie versleuteld naar de profielmap (systeem/mail/<hash van het adres>: 100 mappen, de 300 nieuwste kopteksten per map, 2 MiB gelezen inhoud, bestand hoogstens 4 MiB, geen wachtwoorden of tokens) en die wordt teruggelezen als de map opengaat.
  • Afmelden (profile::clear_user) roept mail::wipe, mailapp::wipe en microsoft::wipe aan: lopende verbindingen breken af (een generatieteller), tokens en codes worden gewist. De kluis en de profielmap houden het refresh token (dat is de bedoeling).
  • IMAP (IMAP4rev1 en IMAP4rev2): geen login zonder TLS; PREAUTH geweigerd; XOAUTH2, PLAIN of LOGIN; SASL-IR; UID-opdrachten, MOVE (of COPY
    • EXPUNGE), APPEND, IDLE. Grenzen: regel 4 MiB, literal 40 MiB, antwoord 48 MiB. Berichten tot 8 MiB in één keer, daarboven deel voor deel.
  • SMTP: 587 met STARTTLS of 465 met TLS; geen AUTH zonder TLS; XOAUTH2, PLAIN of LOGIN; Bcc alleen in de envelop.
  • Microsoft Graph (v1.0): mappen via /me/mailFolders, lijst via …/messages?$top=50, sendMail, createReply, move, permanentDelete, concepten; gedeelde mailboxen onder /users/{adres}. JSON-antwoorden hoogstens 8 MiB.
  • Microsoft-tokens: access tokens alleen in het RAM; vernieuwd vijf minuten voor het verlopen en nog eens na een 401; bij 429/503 één keer wachten op Retry-After (≤ 10 s). Niets van codes, tokens of adressen komt in het logboek.
  • Nog niet: CONDSTORE/QRESYNC, format=flowed, S/MIME, POP3, PDF-bijlagen, doorsturen met bijlagen, meer dan 3 MiB versturen via Graph.

Naslag

Consoleopdrachten

OpdrachtArgumentenWat het doet
mail—gebruik
mail imap<server>[:poort] <gebruiker> [smtp-server[:poort]]inloggen (wachtwoord daarna gevraagd), mappen en de laatste 10 berichten van INBOX; poort 993 TLS (standaard), 143 STARTTLS; SMTP standaardpoort 587
mail send<smtp-server>[:poort] <gebruiker> <aan>een testbericht versturen (587 STARTTLS standaard, 465 TLS); oude alias stuur
mail test<server>[:poort]TLS/STARTTLS en CAPABILITY of EHLO zonder in te loggen (standaardpoort 993); oude alias proef
microsoft / microsoft status—tenant van de Entra-app en de accounts met hun toestand
microsoft login—een login met device code starten; oude alias inloggen
microsoft again<id>een account opnieuw inloggen; oude alias opnieuw
microsoft forget<id>een account vergeten (RAM en kluis); oude alias vergeet
microsoft graph<pad> (bijvoorbeeld /me)GET op Microsoft Graph met het eerste account; toont alleen HTTP-status en grootte
microsoft imap<id>proberen een IMAP/SMTP-token (XOAUTH2) voor het account te krijgen

Functies en modules

Functie / moduleRol
kernel::mail::commandde consoleopdracht mail
kernel::mail::imap_mailbox / KernelNetIMAP/SMTP-account met de eigen TCP en TLS 1.3 van EUZOS (STARTTLS)
kernel::mail::graph::graph_mailbox / shared_mailboxMicrosoft 365-mailbox en gedeelde mailbox
kernel::mail::wipelopende verbindingen afbreken bij afmelden
kernel::mailapp (run, draw, wipe, save_cache, profile_dir_open, profile_loaded, counting_down)de accounts, threads en cache van de app E-mail
kernel::microsoft::login / login_again / forget / forget_with_vaultde accounts van de Microsoft-sessie
kernel::microsoft::restore / profile_dir_open / auto_logged_inautomatisch koppelen vanuit de kluis en de profielmap
kernel::microsoft::graph / graph_shared / bearer / token_forgeautoriseerde Graph-verzoeken; tokens voor andere scopes
kernel::microsoft::msapp / primary / accounts / wipe / commandMSAPP.TXT, eerste account, lijst, afmelden, console
euzos_mail (model, cache, disk, mime, imap, smtp, mailbox, net)model, RAM-cache, formaat van de cache in de profielmap, MIME, IMAP, SMTP
euzos_graph::GraphMailboxde Mailbox voor Microsoft 365
euzos_mailapp (MailApp, Action, READ_AFTER_MS, AccountKind, providers)tekenen en gedrag van de app; vooraf ingevulde aanbieders
euzos_oauth (MsApp, Poller, Token, Secret, xoauth2, scopes)device code flow, vernieuwen, XOAUTH2, MSAPP.TXT

Configuratiebestanden

BestandSleutelWaardenBetekenis
\EOS\FW\MSAPP.TXTclient_ideen GUID (verplicht)de Entra-app van EUZOS
\EOS\FW\MSAPP.TXTtenantcommon (standaard), organizations, consumers, of een tenant-id/domeinwelke accounts mogen inloggen; elke andere sleutel is een fout
\EOS\FW\EXTRA.PEM—PEM-certificatenextra vertrouwde certificaten (bijvoorbeeld een Proton Mail Bridge op een andere pc)

Profielinstelling (op de lijn; de waarde gedeeld blijft Nederlands), hoogstens 16 regels, nooit wachtwoorden of tokens:

mail-account=microsoft<TAB><adres><TAB><naam>
mail-account=imap<TAB><adres><TAB><naam><TAB><gebruiker><TAB><imap-host>:<poort><TAB><smtp-host>:<poort>
mail-account=gedeeld<TAB><adres><TAB><eigenaar>

Sinds 27-10-2026 schrijft EUZOS Engelse namen voor configuratiebestanden, sleutels, waarden en bevestigingswoorden (bijvoorbeeld WIPE-…, environment= in PROFILE.TXT); de oude Nederlandse namen (hier oud genoemd) worden nog gelezen en geaccepteerd (docs/ENGLISH.md).

API-eindpunten

EindpuntGebruikt voor
Microsoft identity platform, device code flow (RFC 8628)inloggen; scopes offline_access, User.Read, Mail.ReadWrite, Mail.Send, Files.ReadWrite.All, Sites.Read.All, Mail.ReadWrite.Shared, Mail.Send.Shared
https://graph.microsoft.com/v1.0/me, /me/mailFolders, …/messages, /me/sendMail, /$batch, /users/{adres}/…
IMAP/SMTP van Exchange Onlinescopes https://outlook.office.com/IMAP.AccessAsUser.All en …/SMTP.Send met XOAUTH2
Kluis op de profielserversoort ms-refresh:<id> (zie Pc-login en API)

Protocolberichten en formaten

FormaatBeschrijving
IMAPLIST "" "*", STATUS, SELECT, UID SEARCH ALL, UID FETCH, UID STORE, UID MOVE, UID COPY, UID EXPUNGE, APPEND, IDLE, LOGOUT; AUTHENTICATE XOAUTH2/PLAIN, LOGIN
SMTPEHLO, STARTTLS, AUTH XOAUTH2/PLAIN/LOGIN, MAIL FROM (met SIZE=), RCPT TO, DATA, QUIT
uitvoer van mail testmail test: IMAP <host>:<poort> encrypted; CAPABILITY: … of SMTP … EHLO: …, daarna done in N ms

Zie ook

  • docs/MAIL.md: het volledige ontwerp (model, IMAP, SMTP, Graph, app, gedeelde mailboxen, wat waar bewaard wordt)
  • docs/EXCEPTIONS.md, U-20 (Microsoft Graph)
  • docs/PROFILE-PROTOCOL.md, "The vault"
  • Verkenner (OneDrive met dezelfde Microsoft-sessie), Opslag (profielmap, kluis)