resofire / digest-mail
Sends a periodic digest email to forum members summarising new discussions, active discussions, unread discussions, and new members.
Package info
github.com/ResofireV2/digest-mail
Type:flarum-extension
pkg:composer/resofire/digest-mail
Requires
- php: >=8.1
- flarum/core: ^1.8
README
A Flarum extension that sends periodic digest emails to forum members, summarising new discussions, active discussions, unread discussions, and new members.
Features
- Flexible frequency — users choose daily, weekly, monthly, or opt out entirely from their account settings
- Rich digest content — each email includes new discussions, hot/active discussions, unread discussions (personalised per recipient), and new member highlights
- Configurable content limits — admins control the maximum number of items shown in each section
- Hot score tuning — configurable reply weight and recency weight for ranking active discussions
- Scheduled sending — integrates with the Laravel scheduler; runs hourly and applies a time-gate so digests fire at the configured UTC hour
- Unsubscribe support — every email includes a one-click unsubscribe link backed by a secure token
- Test send tool — send a live digest preview to any email address directly from the admin panel
Requirements
- PHP >= 8.1
- Flarum >= 1.8
Installation
composer require resofire/digest-mail
Then enable the extension in your Flarum admin panel.
Scheduler Setup
Add the Laravel scheduler to your server's cron to run every hour:
* * * * * cd /path/to/flarum && php flarum schedule:run >> /dev/null 2>&1
The extension's digest:send command is automatically registered with the scheduler and will self-gate based on your configured send hour.
Admin Settings
| Setting | Description |
|---|---|
| New Discussions — max items | Maximum new discussions included per digest |
| Active Discussions — max items | Maximum hot/active discussions included |
| Unread Discussions — max items | Maximum personalised unread discussions per recipient |
| New Members — max items | Maximum new member profiles shown |
| Hot score — reply weight | How much each reply contributes to a discussion's hotness score |
| Hot score — recency weight | How much recency boosts hotness (0 = replies-only ranking) |
| Send hour (UTC) | The UTC hour at which scheduled digests are dispatched |
| Weekly digest — send day | Day of the week for weekly digests (0 = Sunday, 1 = Monday, …) |
| Monthly digest — send day | Day of the month for monthly digests (capped at 28) |
Console Command
Digests can also be triggered manually:
# Run all due frequencies (respects the time gate) php flarum digest:send # Force a specific frequency, bypassing the time gate php flarum digest:send --frequency=weekly # Dry run — lists eligible recipients without sending php flarum digest:send --frequency=daily --dry-run # Restrict to a single user (for testing) php flarum digest:send --frequency=daily --user=1
User Settings
Each user can manage their digest preference from their account settings page. Options are:
- Off — no digests sent
- Daily
- Weekly
- Monthly
License
MIT