> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# E-mail en mail

Transactionele templates, preview-tooling en provider-adapters.

## Lees uw eerste lokale bericht en schakel vervolgens de bezorging in

Transactionele e-mail betekent een bericht dat wordt geactiveerd door een app-actie, zoals een inlogcode of een taakresultaat. Terwijl de webserver actief is, bewaart u EMAIL_PROVIDER=local in apps/web/.env.local.. Voltooi de database-installatie, vraag een inlogcode aan via /auth, open vervolgens /mail-preview en bekijk het laatste bericht. Een lokaal bericht dat hier verschijnt, is geen e-mail die in uw externe inbox is afgeleverd.

Om echte berichten te verzenden, kiest u een e-mailprovider, maakt u een account aan, verifieert u een domein dat u beheert en volgt u de bijbehorende handleiding. Plaats de genoemde API-sleutel en het afzenderadres in apps/web/.env.local, sla op en start de webserver opnieuw op. Vraag één nieuwe inlogcode aan en controleer vervolgens zowel het leveringslogboek van de provider als de inbox van de bestemming, inclusief spam. Domeinverificatie en goedkeuring van de afzender kunnen enige tijd in beslag nemen.

Als het bericht mislukt, controleer dan de bezorgingsfout en de afzenderverificatie voordat u herhaaldelijk om een verzoek vraagt. De /mail-preview-route is alleen voor ontwikkeling en retourneert 404 in productie. Houd marketingactiviteiten gescheiden van deze transactionele afzender, zodat een nieuwsbriefcampagne de e-mail voor accountverificatie niet kan verstoren.

[Kies een e-mailprovider en afzenderadres](https://supastack.dev/nl/docs/modules/email-configuration.md)

[Bezorging opnieuw verzenden inschakelen](https://supastack.dev/nl/docs/web/setup-email.md)

[Amazon SES met AWS SDK of IAM SMTP instellen](https://supastack.dev/nl/docs/web/aws-ses.md)


## Houd transactionele aflevering gescheiden

De e-mailmodule handelt transactionele productberichten af, inclusief authenticatie en taakvoltooiing. Outreach hoort bij de eigen workflow van het consumerende product en moet gescheiden blijven van dit transactionele pad.


## Configureer de afleveradapter

Gebruik de lokale adapter voor deterministische tests. Configureer de gekozen productieadapter en zijn server-side credentials voordat je externe aflevering inschakelt. Plaats mailprovidersecrets nooit in clientconfiguratie of logs.


## Registreer aflevering onafhankelijk

Een gegenereerd resultaat en zijn voltooiingsmail hebben aparte uitkomsten. Inspecteer afleverrecords voordat je claimt dat een bericht succesvol is verzonden. Test een gefaalde aflevering zonder die als gefaalde generatie te behandelen of dubbel modelwerk in te dienen.


## Setup en configuratie

EMAIL_PROVIDER=local houdt aflevering deterministisch tijdens ontwikkeling. Kies voor productieaflevering een van de geconfigureerde adapters — Resend (RESEND_API_KEY), AWS SES (AWS_REGION plus access keys), Postmark, SendGrid, Mailgun, generieke SMTP of Brevo — en verifieer dat EMAIL_FROM overeenkomt met een afzenderidentiteit die de provider accepteert.

Alle templates leven in src/transactional-mail-templates.ts. De dev-only /mail-preview-route rendert elke template zodat wijzigingen visueel worden beoordeeld in plaats van door mail te versturen.

```
EMAIL_PROVIDER=resend
EMAIL_FROM=Your Product <hello@yourdomain.com>
```


## Implementatieworkflow

Auth-codes, magic links, uitnodigingen, billing-notices en mails over voltooide taken gaan allemaal via dezelfde transactionele afzender met tekst in de opgeloste locale. Outreach-campagnes zijn een aparte productzorg en delen dit pad nooit.

Preview een template in mail-preview voordat je tekst of layout bewerkt; houd merkwaarden (naam, kleuren, logo-tegels) uit de configuratie komend zodat afgeleide producten restylen zonder templates te forken.


## Verificatie en probleemoplossing

Assert in tests op de vastgelegde berichten van de lokale adapter — ontvanger, onderwerp en gerenderde body. Een mislukte verzending moet opduiken als leveringsresultaat, niet als een gecrashte workflow. Gebruik de optionele smoke-route met REAL_SMOKE_EMAIL_ALLOWED_DOMAIN voor echte levering.


## Volgende

[Notificaties](https://supastack.dev/nl/docs/web/notifications.md)
