finity-labs/fin-mail
FinMail adds an email template manager and composer to Filament. Create dynamic, translatable templates with token/merge-tag replacement, CTA blocks, and versioning. Send from any resource via a reusable action, with full email logging and status tracking.
spatie/laravel-settings, spatie/laravel-translatable).Mailable classes via TemplateMail wrapper.fin-mail:install CLI for setup (migrations, config, locales). No manual database schema changes required beyond settings table.{{ user.name }}, conditionals) adds runtime parsing overhead. Edge cases (e.g., circular references, malformed tokens) may need validation.spatie/laravel-translatable adds complexity for multilingual setups. Locale management must be pre-configured during install.{{ user.name | 'Customer' }}) handle missing data?SendEmailAction, SentEmailsRelationManager.@source directives in Filament’s CSS.spatie/laravel-settings for config and adds tables for:
email_templates (content, versions, locales).sent_emails (logs, statuses, attachments).email_themes (color schemes).SendEmailAction can replace custom logic.fin-mail in a staging environment.Mailable classes with TemplateMail.HasEmailTemplates trait to relevant models.SentEmailsRelationManager into resources.sent_emails (via fin-mail:cleanup command).EditorContract.TemplateMail unlocks FinMail’s UI features.phpdocumentor/reflection-docblock).composer require finity-labs/fin-mail.php artisan fin-mail:install (interactive or non-interactive).FinMailPlugin in panel() with desired options (e.g., navigation groups, Shield policies).php artisan vendor:publish --tag=fin-mail-views.fin-mail:seed or manually.SendEmailAction to Filament resources.SentEmailsRelationManager to models using HasEmailTemplates.php artisan migrate if not done during install).finity-labs/fin-mail for Filament compatibility changes. Updates may require:
spatie/laravel-settings and spatie/laravel-translatable may need updates.fin-mail:cleanup to purge old sent_emails (default: 1 year).{{ token | 'DEBUG' }} fallbacks or check EmailFailed events.php artisan filament:cache:clear) or verify Tailwind scans.failed_jobs table and adjust queue workers.TemplateMail vs. custom Mailable tradeoffs.mail:work with multiple workers for parallel sends. Monitor jobs table.sent_emails(recipient, sent_at) for large logs. Partition tables if needed.sent_emails; compress if retention is long-term.throttle middleware for API-based sends.| Failure Point | Impact | Mitigation |
|---|---|---|
| Token Parsing Errors | Emails fail silently or render broken. | Use EmailFailed |
How can I help you explore Laravel packages today?