Email Add your own email provider kirby/config/components.php#L41 You integrate your own email providers (sendgrid, mailgun, mailchimp, sparkpost, etc) instead of using Kirby's default PHPMailer library. class CustomEmailProvider extends Kirby\Email\Email { public function send(bool $debug = false): bool { // sending stuff return true; } } Kirby::plugin('my/email', [ 'components' => [ 'email' => function ($kirby, $props, $debug) { return new CustomEmailProvider($props, $debug); } ] ]); SendGrid example class SendGridProvider extends Kirby\Email\Email { public function send(): bool { $sendgrid = new SendGrid("SENDGRID_APIKEY"); $email = new SendGrid\Email(); $email->addTo(current(array_keys($this->to()))) ->setFrom($this->from()) ->setSubject($this->subject()) ->setHtml($this->body()->html()); return $sendgrid->send($email); } } Kirby::plugin('my/sendgrid', [ 'components' => [ 'email' => function ($kirby, $props, $debug) { return new SendGridProvider($props, $debug); } ] ]); Mailgun Example class MailgunProvider extends Kirby\Email\Email { public function send(): bool { $mg = Mailgun\Mailgun::create('key-example'); // For US servers $mg = Mailgun\Mailgun::create('key-example', 'https://api.eu.mailgun.net'); // For EU servers return $mg->messages()->send('example.com', [ 'from' => $this->from(), 'to' => current(array_keys($this->to())), 'subject' => $this->subject(), 'text' => $this->body()->text() ]); } } Kirby::plugin('my/mailgun', [ 'components' => [ 'email' => function ($kirby, $props, $debug) { return new MailgunProvider($props, $debug); } ] ]); Parameters Name Type Default Description $kirby * Kirby\Cms\App – Kirby instance $props array [ ] $debug bool false