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
Hermes Bundle

Hermes Bundle Laravel Package

2lenet/hermes-bundle

HermesBundle is a simple mail manager for CruditBundle that lets you create and send templated emails through Symfony Mailer. It supports consent-management links and optional statistics for tracking consent and link clicks, with setup via Composer.

View on GitHub
Deep Wiki
Context7

At a glance

Frequently asked questions about Hermes Bundle
Is 2lenet/hermes-bundle a Laravel package?
No. HermesBundle is a Symfony bundle built for CruditBundle, and it ships no Laravel service provider, facade, or publishable config. Its admin dashboard, Doctrine entities, Twig rendering, and DI extension are all Symfony-specific glue. For a Laravel codebase this is a fork-and-rewrite port, not a Composer integration.
How do I install 2lenet/hermes-bundle?
Run composer require 2lenet/hermes-bundle and then follow the docs to register the bundle and configure it. On Symfony projects with Flex the recipe handles registration and initial config. Afterwards you apply the shipped Doctrine migrations, set a real Mailer DSN instead of null://, and author your base Twig/MJML templates.
Which Laravel and Symfony versions does HermesBundle support?
There is no Laravel support at all, so no Laravel version constraint exists. The package targets Symfony applications, with compatibility for Symfony 6.4, 7.x, and 8.x, and Symfony 8 support landed in version 1.9.0. It also expects Doctrine ORM, Twig, and CruditBundle to be present in the host application.
What does HermesBundle actually do?
It is a mail management layer that stores Mail and Recipient entities, renders bodies from Twig and MJML templates, handles attachments and CC sublists, and exposes a CruditBundle admin dashboard. You get cancel-send, resend-per-recipient, status filtering, and consent or link-click statistics per template. Actual delivery is delegated to Symfony Mailer, so the durable value is the template and recipient state model rather than the send mechanism.
Can I use HermesBundle with Eloquent instead of Doctrine?
Not without a port. The package is built on Doctrine ORM entities and mappings, while Laravel defaults to Eloquent, so you would either stand up Doctrine alongside Eloquent or rewrite the entities and repositories. The schema also lands in your database via shipped migrations, so review the Recipient PII fields and indexing before applying them.
Does HermesBundle work without CruditBundle?
It has a hard dependency on CruditBundle, which provides the dashboard, filters, and actions. Without Crudit you inherit unused admin code and transitive dependencies for no benefit. If you want the data model only, fork the bundle and trim the Crudit wiring out.
How does HermesBundle send email and which transports can I use?
Delivery goes through Symfony Mailer, so any Mailer transport works, including SES, Postmark, and standard SMTP. You configure this via the Mailer DSN, and you should not ship with the null:// transport enabled. Because Laravel's mailer also sits on symfony/mailer, transports are shared even though the surrounding bundle code is not portable.
How do I add an unsubscribe or consent link in a HermesBundle template?
Add an anchor in the template whose href is the CONSENT_LINK placeholder, for example an anchor with href set to CONSENT_LINK, and enable the statistics boolean on the Template. That flag also turns on link-click statistics. The template context additionally exposes consent_value as a boolean so you can branch on whether the recipient has already consented. Verify signed-link behaviour, since a fix for it shipped in 1.8.6.
What are the best Laravel alternatives to HermesBundle?
For Laravel, use Mailables plus a small admin resource such as a Filament or Nova panel to manage templates and recipients, and delegate unsubscribe and click tracking to your ESP. If you need A/B testing, journeys, or campaign analytics, use a dedicated provider like SES, Postmark, or Mailchimp rather than building it. HermesBundle itself is only worth adopting if you already run Symfony with CruditBundle, Twig, and Doctrine.
Is HermesBundle maintained and safe for production?
It is MIT licensed with no vendor lock-in and is current with Symfony 8 as of 1.9.0, but it is a small agency-backed project with roughly two stars, zero dependents, and a bus factor of one or two. Treat it as something you may need to own: pin a version such as 1.11.x and be prepared to fork if releases stop. Also confirm how sends are batched and queued, since Symfony Messenger integration and mid-batch failure behaviour are not clearly documented.
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.
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels