MailSender is een statische hulpklasse voor het verzenden van e-mail via SMTP. Het is een wrapper rond het mailer-pakket.
Importeren
import 'package:finch/finch_mail.dart';
Een e-mail verzenden
bool success = await MailSender.sendEmail(
from: '[email protected]',
fromName: 'My App',
host: env.get('MAIL_HOST', 'smtp.example.com'),
port: env.getInt('MAIL_PORT', 587),
username: env.get('MAIL_USER', ''),
password: env.get('MAIL_PASS', ''),
ssl: true,
allowInsecure: false,
to: ['[email protected]'],
subject: 'Welcome to My App',
html: '<h1>Hello!</h1><p>Your account is ready.</p>',
text: 'Hello! Your account is ready.',
);
if (!success) {
Console.e('Failed to send email');
}
Parameters van MailSender.sendEmail
| Parameter | Type | Standaard | Beschrijving |
|---|---|---|---|
from |
String |
verplicht | E-mailadres van de afzender |
fromName |
String |
'' |
Weergavenaam van de afzender |
host |
String |
'localhost' |
SMTP-serverhostnaam |
port |
int |
1025 |
SMTP-poort (doorgaans 465/587) |
username |
String? |
— | SMTP-gebruikersnaam |
password |
String? |
— | SMTP-wachtwoord |
ssl |
bool |
true |
SSL/TLS inschakelen |
allowInsecure |
bool |
true |
Onveilige verbinding toestaan (geen SSL) |
to |
List<String> |
verplicht | Ontvangeradressen |
subject |
String |
'' |
E-mailonderwerp |
html |
String |
'' |
HTML-inhoud |
text |
String |
'' |
Platte-tekstinhoud |
Controllervoorbeeld
class HomeController extends Controller {
Future<String> sendTestEmail() async {
var email = rq.get<String>('email', def: '');
if (email.isEmpty) return rq.renderError(400, message: 'Missing email');
var sent = await MailSender.sendEmail(
from: '[email protected]',
host: env.get('MAIL_HOST', 'localhost'),
port: env.getInt('MAIL_PORT', 1025),
username: env.get('MAIL_USER'),
password: env.get('MAIL_PASS'),
ssl: false,
to: [email],
subject: 'Test',
html: '<p>This is a test email from Finch.</p>',
);
return rq.renderData(data: {'success': sent});
}
}
Ontwikkelomgeving instellen
Gebruik voor lokale ontwikkeling MailHog of Mailpit als lokale SMTP-server:
# Docker
docker run -d -p 1025:1025 -p 8025:8025 axllent/mailpit
Configureer vervolgens:
MAIL_HOST=localhost
MAIL_PORT=1025
Open http://localhost:8025 in je browser om de opgevangen e-mails te bekijken.