E-mail

Finch ondersteunt SMTP via MailSender. Configureer het in FinchConfigs en roep MailSender.sendEmail() aan vanuit elke controller.

Configuratie

FinchConfigs(
  mailDefault: env['MAIL_FROM'] ?? '[email protected]',
  mailHost:    env['MAIL_HOST'] ?? 'smtp.example.com',
)

Of via omgevingsvariabelen:

[email protected]
MAIL_HOST=smtp.example.com

E-mail verzenden

import 'package:finch/finch_mail.dart';

Future<String> sendWelcome() async {
  var email = rq.get<String>('email', def: '');

  var result = await MailSender.sendEmail(
    host: FinchApp.config.mailHost,
    from: MailSender.mailAddress(
      email: FinchApp.config.mailDefault,
      name: 'Finch Team',
    ),
    to: [MailSender.mailAddress(email: email)],
    subject: 'Welkom bij Finch!',
    body: '<h1>Hallo!</h1><p>Je registratie is gelukt.</p>',
    isHtml: true,
  );

  if (result.success) {
    return rq.renderData(data: {'message': 'E-mail verzonden'});
  } else {
    return rq.renderError(status: 500, message: result.error ?? 'Kan e-mail niet verzenden');
  }
}

sendEmail-parameters

Parameter Type Beschrijving
host String SMTP-serveradres
from MailAddress Afzenderadres
to List<MailAddress> Ontvangeradressen
subject String E-mailonderwerp
body String E-mailinhoud
isHtml bool Of de body HTML is (standaard: false)
cc List<MailAddress>? CC-ontvangers
bcc List<MailAddress>? BCC-ontvangers
port int? SMTP-poort (standaard: 465)
user String? SMTP-gebruikersnaam
password String? SMTP-wachtwoord

Mailpit instellen voor ontwikkeling

Mailpit is een lokale SMTP-server die alle uitgaande e-mails opvangt in plaats van ze daadwerkelijk te versturen:

# In docker-compose.yaml
mailpit:
  image: axllent/mailpit
  ports:
    - "8025:8025"   # Webinterface
    - "1025:1025"   # SMTP
MAIL_HOST=localhost
MAIL_PORT=1025

Bekijk de webinterface op http://localhost:8025.