Documentation Index
Fetch the complete documentation index at: https://docs.replied.dk/llms.txt
Use this file to discover all available pages before exploring further.
Kort fortalt
Email-systemet i Replied består af to lag:Forbundne konti
Afsendere I kobler på — Google, Microsoft eller egen mailserver. Definerer hvordan der sendes og modtages.
Email-beskeder
Alle indgående og udgående emails, automatisk knyttet til den rigtige henvendelse. Definerer hvad der faktisk er sendt.
Understøttede udbydere
OAuth 2.0 med Gmail API. Ét klik for at forbinde.
Microsoft
OAuth 2.0 med Microsoft Graph. Understøtter Outlook og M365.
Egen mailserver
SMTP til afsendelse + IMAP til modtagelse. Fuld kontrol.
Hvis I vælger egen mailserver uden IMAP, kan I stadig sende mails — men systemet kan ikke hente svar automatisk.
Forbind en konto
- Google
- Microsoft
- Egen mailserver
Sådan sender vi mails
Når en bruger svarer på en tråd:Threading-headere bygges
Nyt RFC
Message-ID, In-Reply-To fra tidligere besked, og References ud fra kæden.Besked oprettes med status 'sending'
En række i
email_messages gemmes før afsendelse, så I altid har sporbarhed.Sådan henter vi svar
IMAP polling (egen mailserver)
IMAP polling (egen mailserver)
pollInboxForAccount(...) kører disse trin:- Dekrypterer IMAP-adgangskode
- Opretter IMAP-forbindelse og låser mailboxen
- Henter kun nye mails via UID-state (
imap_last_uid,imap_uid_validity) - Parser mails med
mailparser - Matcher mail til henvendelse
- Gemmer i
email_messagesog opdaterer sync-state
00062.Microsoft Graph polling
Microsoft Graph polling
pollGraphInboxForAccount(...) kører disse trin:- Sikrer at kontoen har
Mail.Readog gyldigt access token - Henter
/me/messagessiden sidste poll - Undgår dubletter via
internetMessageId - Matcher mail til henvendelse
- Gemmer indgående mail + aktivitet
- Opdaterer high-water mark (
imap_last_polled_at)
Google (Gmail)
Google (Gmail)
Google inbound polling er markeret som ikke implementeret endnu i det nuværende cron-flow. Afsendelse via Gmail API virker fuldt ud.
Hvornår polling kører
| Trigger | Frekvens | Beskrivelse |
|---|---|---|
| Cron | Hvert 5. minut | POST /api/cron/email-poll beskyttet med CRON_SECRET |
| Manuel | On-demand | ”Tjek nu”-knap via /api/company/email-accounts/poll |
| Auto-refresh | Hvert 60. sekund | Stille baggrunds-poll når trådvisning er åben |
Matching af svar til henvendelser
Systemet forsøger i denne rækkefølge — stopper ved første match:
Denne kaskade giver robust matching — også når udbydere ændrer headers.
Sikkerhed
AES-256-GCM kryptering
SMTP/IMAP adgangskoder og alle OAuth tokens krypteres før de gemmes i databasen.
Row Level Security
Alle medlemmer kan læse konti. Kun
org_admin / superadmin kan oprette, rette og slette.Krypterings-nøgle
Hentes fra
EMAIL_ENCRYPTION_KEY. Skal dekode til 32 bytes. Format: iv || ciphertext || authTag (base64).Graceful fejl-håndtering
Dekrypteringsfejl vises som driftsfejl i fejlstatus — aldrig som lækket data.