External SMTP setup
Email / SMTP
Fountain sends two types of transactional email:
- Login code — magic-link auth sent when a customer requests access
- Order confirmation — sent after a successful Paddle transaction
Kirby uses mail() by default, which will silently fail or land in spam on most production hosts. You need to configure an SMTP transport.
Kirby config
Add an email preset in your site/config/config.php:
return [
'email' => [
'presets' => [
'default' => [
'transport' => [
'type' => 'smtp',
'host' => 'smtp.example.com',
'port' => 587,
'security' => 'tls',
'auth' => true,
'username' => 'your-smtp-username',
'password' => 'your-smtp-password',
],
],
],
],
];
Fountain picks up the default preset automatically via kirby()->email().
Fountain email options
Set the sender address and name in the same config file:
'nymarktype.fountain.email.from' => 'no-reply@yourdomain.com',
'nymarktype.fountain.email.fromName' => 'Your Foundry Name',
If omitted, from defaults to no-reply@
Providers
Any SMTP-compatible service works. Common choices:
│Provider│Host│Port│
|---|---|---|
│Brevo (Sendinblue)│smtp-relay.brevo.com│587│
│Postmark│smtp.postmarkapp.com│587│
│Mailgun│smtp.mailgun.org│587│
│Amazon SES│region-specific│587│
Testing
Use a tool like Mailtrap or Mailpit locally to catch outgoing mail without delivering it.
Also — your site/config/config.php has what looks like real SMTP credentials committed to it.
Worth moving those to an env file or a gitignored config before this goes anywhere public.