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.