Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Postmark Mailer

Postmark Mailer Laravel Package

symfony/postmark-mailer

Postmark integration for Symfony Mailer, supporting both SMTP and API transports via simple DSN configuration using your Postmark Server Token. Configure with postmark+smtp://ID@default or postmark+api://KEY@default.

View on GitHub
Deep Wiki
Context7

Symfony Postmark Mailer Bridge

Frequently asked questions about Postmark Mailer
How do I install symfony/postmark-mailer in Laravel?
Install it with Composer using composer require symfony/postmark-mailer. Then configure your Postmark Server Token through an environment-driven DSN such as postmark+api://KEY@default or postmark+smtp://ID@default. Because this is a Symfony Mailer bridge, Laravel integration usually requires a thin custom transport binding or running Symfony Mailer alongside Laravel.
Does symfony/postmark-mailer work with Laravel 10, 11, and 12?
The package targets PHP 8.2+, which aligns with Laravel 10, 11, and 12. It does not ship a Laravel service provider or native Laravel mail driver, so you must adapt it through Laravel's Mail manager or Symfony Mailer. Laravel 10+ already uses Symfony Mailer internally, so the bridging work is narrower than older Swiftmailer-era integrations.
How do I configure Postmark DSN for SMTP versus API in Laravel?
Use postmark+smtp://ID@default for SMTP and postmark+api://KEY@default for the Postmark API, where ID or KEY is your Postmark Server Token. Store the DSN in MAILER_DSN or map it into Laravel's mail configuration. The API transport is usually preferable for HTTP-based delivery, while SMTP can fit environments that already standardize on SMTP.
Do I need a custom Laravel mail transport to use this package?
Typically yes, because symfony/postmark-mailer is a Symfony Mailer transport bridge rather than a Laravel-native mail package. You can register a custom transport with Laravel's Mail manager via Mail::extend() and hand Symfony Email objects to the Postmark transport. If tight coupling is unacceptable, you can also run Symfony Mailer as a sidecar or microservice.
Does this package support Postmark webhooks and inbound parsing?
The package exposes Postmark-specific capabilities such as Inbound Parsing, Message Streams, dedicated IPs, and templates through the Symfony Email model. Webhook authenticity is also addressed in v8.1.6 by using a configured secret instead of trusting source IPs. However, app-level webhook ingestion, storage, and dashboard telemetry remain custom Laravel work.
How does v8.1.6 change Postmark webhook authentication?
v8.1.6 makes Postmark webhook authentication use the configured secret rather than trusting source IPs, shifting the integration from network trust to cryptographic trust. You must provision the shared secret in both Postmark and your Laravel environment or config. Missing or incorrect secret configuration can cause legitimate webhooks to be rejected with 401, so treat secret provisioning as a release gate.
What PHP version and dependencies does symfony/postmark-mailer require?
It requires PHP 8.2+ and pulls in Symfony Mailer, including Mime and Transport components, which adds roughly 10MB of dependencies. That overhead is justified when you actually use Postmark deliverability, inbound parsing, streams, or templates. For plain outbound SMTP, a lighter generic mailer may be sufficient.
How should I test Postmark email sending and webhook verification in Laravel?
Mock the transport or use Postmark's sandbox or test message stream for outbound email tests. Add an explicit integration test that a forged webhook is rejected and a correctly signed webhook is accepted. Also test queue retries and failure handling, since async sending in Laravel depends on queue workers.
Is symfony/postmark-mailer production-ready or still beta?
The 8.1.x line is on stable patch releases, and v8.1.6 is a bug-fix release with no breaking changes, which removes the earlier beta-dependency objection. Residual risk is mostly configuration, especially webhook secret provisioning, rather than code stability. Low upgrade risk makes it reasonable for production when the integration is tested.
When should I use this package instead of Laravel's default mailer or direct Postmark API calls?
Use it when Postmark features such as Inbound Parsing, Message Streams, dedicated IPs, templates, and deliverability are load-bearing for high-reliability or auditable messaging. If you only send two or three plain emails, direct Postmark API calls with Guzzle or a generic mailer may be simpler. Also weigh Postmark cost against SES, Mailgun, or Laravel's default transport for your volume.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route