A Communication Module for noerd

Central Email Sending
for your Laravel App

One entry point for sending application emails across all modules — every mail logged with status, recipient, and source record. Per-tenant SMTP included.

Communications
Log
Invoice INV-2026-118
anna@berger-interior.de
sent
Appointment Confirmation
mail@delta-logistics.nl
sent
Password Reset
j.smith@clearwater.co.uk
queued
Order Confirmation #4821
kontakt@alpenblick.de
failed

Install the Communication Module

One command sets everything up: it copies the YAML configs for the communications log, registers the Communication app, and runs the module migrations — existing mail_logs data is migrated automatically.

Requires noerd/noerd and noerd/customer.

Read the Docs
Terminal
$ composer require noerd/communication

$ php artisan noerd:install-communication

 YAML configs copied
 Communication app registered
 Migrations run

Every Mail, Accounted For

Send any Mailable through one service call and get a complete, searchable log of what left your application.

Central Communicator

One service call sends any Mailable — no scattered Mail::to() calls across your modules.

Communications Log

Every email is persisted with subject, from, to, status, and sent time in a YAML-configured list.

Status Tracking

Queued, sent, or failed — failures are logged and re-thrown, so existing job retry logic stays intact.

Customer Linking

Pass a customer as recipient and the mail is sent to their address and linked to their record.

Source Records

Each mail can reference the invoice, order, or other record that triggered it — polymorphically.

Tenant SMTP

Tenants send through their own SMTP settings, resolved at send time with a safe fallback.

Metadata

Cc, bcc, custom headers, and any extra context are persisted as JSON alongside the mail.

Log Retention

A cron-ready artisan command prunes log entries older than a configurable retention period.