Handleidingen
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:
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:
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:
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:
<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 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.