# E-mail

Instellingen voor verzending en e-mail versturen vanuit templates.

Nimbly stuurt e-mail voor wachtwoordherstel, gewijzigde e-mailadressen en meldingen, en je code stuurt zijn eigen mail via dezelfde library. De verzending stel je in in `.env`.

## Verzending instellen

Met Resend:

```env
MAIL_SERVICE=resend
MAIL_FROM=no-reply@example.com
MAIL_FROM_NAME="Example"
RESEND_API_KEY=re_…
SYSTEM_ALERT_EMAIL=alerts@example.com
```

Met een SMTP-provider:

```env
MAIL_SERVICE=smtp
MAIL_FROM=no-reply@example.com
MAIL_FROM_NAME="Example"
SMTP_HOST=smtp.example.com
SMTP_PORT=465
SMTP_USER=…
SMTP_PASSWORD=…
SMTP_SECURE=smtps
```

`SMTP_SECURE` is `smtps` voor TLS op poort 465, of `starttls` voor poort 587. Zet `MAIL_FROM_NAME` op de naam van de site, zodat ontvangers de afzender herkennen.

`SYSTEM_ALERT_EMAIL` ontvangt meldingen over fatale fouten en jobs die definitief zijn mislukt; zonder deze instelling gaan meldingen naar `ADMIN_EMAIL`.

## Een e-mail versturen

De inhoud van het bericht is een template, dus die gebruikt dezelfde shortcodes en variabelen als een pagina:

```php
load_library('email');
load_library('env');
set_variable('lead', $lead);
$sent = email([
    'service' => env('MAIL_SERVICE', 'resend'),
    'from' => env('MAIL_FROM'),
    'from_name' => env('MAIL_FROM_NAME'),
    'recipient' => $lead['email'],
    'subject' => 'Thank you for your message',
    'tpl' => 'email-lead-thanks',
]);
```

`ext/tpl/email-lead-thanks/index.tpl`:

```html
<p>Dear [#get lead.name#],</p>
<p>Thank you for getting in touch. We will reply within two working days.</p>
```

Uit de HTML wordt een versie in platte tekst gemaakt. In plaats van `tpl` geeft `html` een inhoud mee die je zelf hebt gemaakt; `cc` en een lijst met ontvangers worden ook geaccepteerd. `email()` geeft terug of de provider het bericht heeft aangenomen.

## Versturen vanuit een job

Versturen duurt even en kan mislukken, dus verstuur vanuit een [job](/nl/docs/guides/jobs/) in plaats van tijdens een paginarequest. Een job die een fout gooit, wordt opnieuw geprobeerd, en een bericht dat niet kan worden bezorgd, komt bij de mislukte jobs in de admin, met de foutmelding van de provider.
