Start typing to see suggestions. Use arrow keys to navigate, Enter to select.

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@ and fromName to the site title.

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.

Start typing to see suggestions. Use arrow keys to navigate, Enter to select.