Loginlinks, kvitteringer og driftsbeskeder
Få appens vigtige emails sikkert frem
En grøn besked efter “send” betyder kun, at appen eller mailudbyderen har accepteret opgaven. Den beviser ikke, at modtageren har fået loginlinket, kvitteringen eller alarmen. Driftsikker email kræver en godkendt afsender, sikker håndtering af links, leveringsstatus og en plan for bounces og fejl.
Udgivet 18. august 2026 · Ca. 12 minutters læsetid
Start med de mails, som driften afhænger af
Skriv de konkrete beskeder ned, før I vælger udbyder eller ændrer DNS. Et glemt nyhedsbrev og et forsinket loginlink har ikke samme konsekvens. Prioritér de mails, der åbner en konto, bekræfter en betaling eller kræver en handling fra en medarbejder.
| Mailtype | Hvis den mangler | Kontrol i appen |
|---|---|---|
| Invitation eller loginlink | Brugeren kan ikke komme ind | Vis status, udløb og mulighed for kontrolleret gensendelse |
| Nulstilling af adgangskode | Brugeren mister adgang eller kontakter support | Sikkert engangstoken, kort gyldighed og neutral kvittering |
| Ordre- eller betalingskvittering | Kunden er usikker på resultatet | Ordren er stadig synlig i appen; mail er ikke eneste dokumentation |
| Driftsalarm | En fejl fortsætter uden reaktion | Sekundær alarmvej og navngiven ansvarlig |
Hold transaktionelle beskeder adskilt fra kampagner i både formål, skabeloner og rapportering. Hvis markedsføring og kritiske loginmails deler samme afsenderstrøm, bliver fejlsøgning og omdømme sværere at styre.
“Sendt” og “leveret” er ikke det samme
Gem de statusser, som den valgte udbyder faktisk tilbyder, og brug deres præcise betydning. Microsoft beskriver eksempelvis, at en mailserver kan acceptere en mail, uden at det garanterer placering i indbakken. En leveringshændelse betyder normalt, at beskeden er overdraget til modtagerens mailsystem — ikke at mennesket har læst den.
- Oprettet
- Appen har registreret, at beskeden skal sendes.
- Accepteret
- Udbyderen har taget imod opgaven og givet et besked-id.
- Leveret
- Modtagerens mailsystem har accepteret beskeden efter udbyderens definition.
- Bounced
- Levering fejlede midlertidigt eller permanent; årsagen afgør næste handling.
- Suppressed
- Udbyderen undlod at sende til en adresse, der allerede er kendt som problematisk.
Appen bør kunne vise supporten den senest kendte status og et internt besked-id uden at afsløre tokens eller hele mailindholdet i almindelige logs.
Godkend afsenderdomænet med SPF, DKIM og DMARC
Email kan forfalskes, hvis modtagersystemet ikke kan se, hvem der må sende for domænet. De tre mekanismer løser forskellige dele af problemet og skal konfigureres efter jeres konkrete mailudbyder — ikke kopieres fra et tilfældigt eksempel.
SPF
DNS-politik, der angiver hvilke systemer der må bruge domænet som teknisk afsender.
DKIM
Kryptografisk signatur, som modtageren kan kontrollere mod en offentlig nøgle i DNS.
DMARC
Sammenholder det synlige From-domæne med SPF eller DKIM og kan give rapporter og en håndteringspolitik.
- 1. Find alle legitime afsendere. Medtag appudbyder, Microsoft 365 eller Google Workspace, supportsystem, fakturering og eventuelle kampagneværktøjer.
- 2. Vælg en tydelig afsenderidentitet. Brug et domæne, virksomheden ejer, og overvej en særskilt subdomæne-strøm til appens transaktionelle mails.
- 3. Publicér udbyderens præcise records. Kontrollér at eksisterende SPF ikke overskrives, og at DKIM-status bliver godkendt hos udbyderen.
- 4. Kontrollér alignment. Det synlige From-domæne skal passe med den SPF- eller DKIM-identitet, som DMARC vurderer.
- 5. Indfør DMARC kontrolleret. Kortlæg og læs rapporterne, før en strengere politik kan afvise legitime systemer, I havde glemt.
Beskyt loginlinks og nulstillingstokens som adgang
Et link, der kan åbne en konto eller ændre et kodeord, er ikke almindelig tekst. Den, der får tokenet, kan ofte udføre handlingen. OWASP anbefaler tilfældige, tilstrækkeligt lange tokens, sikker lagring, udløb og engangsbrug.
- Generér server-side: Brug et kryptografisk sikkert token og knyt det til den konkrete bruger og handling.
- Brug kun godkendte HTTPS-domæner: Byg ikke reset-URL'en ukritisk ud fra en Host-header, som requestet selv leverer.
- Begræns levetid og genbrug: Et brugt eller udløbet token skal afvises, og gensendelse skal oprette en kontrolleret ny mulighed.
- Giv et neutralt svar: Formularen bør ikke afsløre, om en bestemt emailadresse findes som bruger.
- Hold tokens ude af logs: Log besked-id, bruger-id og hændelsestype efter behov — aldrig hele reset- eller verificeringslinket.
Appen skal stadig have en sikker supportproces, når mailadressen er forkert, lukket eller utilgængelig. Support må ikke omgå identitetskontrollen for at løse en hastesag.
Gør afsendelse til et synligt driftsforløb
Et direkte mailkald midt i et formular-request er svært at genfinde efter timeout. For kritiske beskeder er et separat, vedvarende afsendelsesforløb ofte mere robust:
- 1. Registrér hensigten. Gem mailtype, modtagerreference, skabelonversion og en stabil intern nøgle.
- 2. Send via et kontrolleret job. Jobbet kalder udbyderen med en server-side secret og gemmer besked-id eller en tydelig fejl.
- 3. Modtag status. Behandl leveringshændelser eller webhooks idempotent, så samme hændelse ikke fordobler handlinger.
- 4. Opdatér den kendte tilstand. Gem tidspunkt og resultat for accepteret, leveret, bounced eller suppressed efter udbyderens model.
- 5. Reagér efter årsag. Midlertidige fejl kan håndteres af en afgrænset retry-politik; permanente fejl skal normalt stoppe gentagen afsendelse til adressen.
Udbydere har forskellige retries, events og suppression-lister. Dokumentér præcis hvad jeres løsning gør, i stedet for at antage at alle fejl prøves igen på samme måde.
Overvåg både fejl og usædvanlig stilhed
En integration kan være brudt, selv om ingen fejl ses, hvis appen slet ikke opretter de forventede beskeder. Brug få målinger, som kan kobles til et konkret brugerproblem.
- Kritiske mails oprettet: Matcher antallet de handlinger, der burde udløse dem?
- Fastlåste beskeder: Hvor mange har stået som oprettet eller accepteret længere end jeres normale forløb?
- Bounces og suppression: Er der en pludselig ændring pr. afsender, domæne eller mailtype?
- Leveringstid: Hvor lang tid går der fra brugerens handling til den senest kendte leveringsstatus?
- Syntetisk kontrol: Send med passende interval en ufarlig testmail til kontrollerede postkasser, og kontrollér hele kæden.
En alarm skal have en ejer og en handling. “Mailfejl steg” er mindre brugbart end “loginlinks til Outlook-adresser bouncer; stop gensendelser og kontrollér domænestatus”.
Test med virkelige brugerforløb
En preview i mailværktøjet beviser kun skabelonens udseende. Test fra den rigtige afsender gennem produktionens normale vej til kontrollerede postkasser hos de modtagersystemer, jeres brugere faktisk har.
- Opret invitation, loginlink, nulstilling og kvittering fra deres rigtige handlinger i appen.
- Kontrollér emne, From, Reply-To, tekstversion, links, mobilvisning og hvad der sker efter klik.
- Bekræft SPF-, DKIM- og DMARC-resultater i de modtagne headers.
- Afprøv udløbet, brugt og ændret token uden at bruge rigtige kundekonti.
- Simulér en permanent bounce med udbyderens testfunktion og kontrollér suppression og supportvisning.
- Forsøg en kontrolleret gensendelse, og bekræft at den ikke skaber flere gyldige handlinger end planlagt.
- Kontrollér at logs og analytics ikke indeholder hele links, tokens eller unødvendigt mailindhold.
Typiske fejl
- En privat Gmail-konto bruges som appserver: Ejerskab, adgang, afsendergodkendelse og drift bliver personafhængig.
- API-svar 200 kaldes leveret: Appen gemmer udbyderens accept som bevis for, at modtageren fik mailen.
- DNS-records overskrives: En ny SPF-opsætning fjerner andre legitime afsendere eller skaber flere modstridende records.
- Alle bounces prøves igen: Permanente fejl fortsætter og skader afsenderens omdømme.
- Kun HTML testes: Tekstversion, lange links, mobilvisning og tilgængelighed bliver glemt.
- Resetlinket ligger i loggen: Et værktøj, en supportbruger eller en eksport får adgang til et aktivt token.
- Mail er eneste sandhed: Brugeren kan ikke se ordre, booking eller status i appen, hvis mailen er forsinket.
Tjekliste til appens transaktionelle emails
- ☐ Kritiske mailtyper, konsekvens og ansvarlig er kortlagt.
- ☐ Afsenderkonto og domæne ejes af virksomheden og er beskyttet med stærk adgang.
- ☐ Alle legitime afsendersystemer er kendt; SPF, DKIM og DMARC er kontrolleret.
- ☐ From, Reply-To og eventuel subdomæne-strøm er valgt bevidst.
- ☐ Appen skelner mellem oprettet, accepteret, leveret, bounced og suppressed.
- ☐ Udbyderens besked-id og seneste status kan findes af supporten.
- ☐ Permanente bounces og klager stopper ukritisk gensendelse.
- ☐ Login- og nulstillingstokens er tilfældige, kortlivede, engangsbrug og servervaliderede.
- ☐ Tokens, hele links og unødvendigt mailindhold gemmes ikke i logs.
- ☐ Gensendelse, retries og statuswebhooks kan ikke skabe dobbelthandlinger.
- ☐ Levering og fejl overvåges, og alarmer har en navngiven modtager.
- ☐ De vigtigste mails er testet gennem hele forløbet på mobil og relevante mailsystemer.
Relaterede guides
Officielle kilder
Krav, statusnavne og leveringsfunktioner kan ændre sig. Kontrollér altid den aktuelle dokumentation for jeres domæne, mailudbyder og modtagersystem.
- Google: Email sender guidelines
- IETF RFC 7208: Sender Policy Framework (SPF)
- IETF RFC 6376: DomainKeys Identified Mail (DKIM)
- IETF RFC 7489: DMARC
- Microsoft: Afsenderomdømme, bounces og suppression
- Microsoft: Leveringshændelser for email
- OWASP: Forgot Password Cheat Sheet
- OWASP: Email Validation and Verification Cheat Sheet
Virker appen, men forsvinder de vigtige mails?
Startklar er til virksomheder, der allerede har bygget en fungerende app og vil have ro på sikkerhed og drift. Vi kan gennemgå afsenderdomæne, mailflow, tokens, leveringsstatus, fejl og dokumentation i den stack, appen faktisk bruger.
Se Startklar-forløbet