switon / mail
Outbound mail with fluent messages, SMTP serialization, and pooled transport for Switon Framework
v1.0.0
2026-06-06 13:43 UTC
Requires
- php: >=8.3
- ext-curl: *
- psr/event-dispatcher: ^1.0
- switon/core: ^1.0
- switon/event: ^1.0
- switon/pool: ^1.0
Requires (Dev)
- phpstan/extension-installer: ^1.4
- phpstan/phpstan: ^2.0
- switon/testing: ^1.0
README
Switon's mailer for composing outbound messages, delivering them through pooled SMTP connections, and surfacing delivery events.
Highlights
- Message composition:
MailerInterface::compose()builds a ready-to-send message object. - Delivery flow: recipients are validated before the message is sent.
- SMTP transport: repeated delivery can reuse a pooled connection.
- Delivery visibility: mail send, success, and failure states can be observed.
- Transport-ready messages: composed messages can be sent directly.
Installation
composer require switon/mail
Quick Start
use Switon\Core\Attribute\Autowired; use Switon\Mail\Address; use Switon\Mail\MailerInterface; use Switon\Mail\Message; class NotifyService { #[Autowired] protected MailerInterface $mailer; public function ping(string $to): void { $msg = Message::compose() ->from(new Address('app@example.com')) ->to(new Address($to)) ->subject('Ping') ->text('Hello.'); $this->mailer->send($msg->get()); } }
Docs: https://docs.switon.dev/latest/mail
License
MIT.