Corndog for Craft CMS

Installation

Requirements

  • Craft CMS 5.3 or later
  • PHP 8.2 or later

That is the whole list. Corndog has no runtime dependencies beyond Craft's own, no build step, and makes no outbound HTTP request of its own — not at install, not on a send, not ever. The only network traffic it is involved in is the email your site was already sending.

Corndog is free. There are no editions, no licence key and no licensing code in the plugin.

Install

composer require justinholtweb/craft-corndog
php craft plugin/install corndog

Or find Corndog in the Plugin Store and install it there.

Installing creates two tables — corndog_messages and corndog_events — and adds a Corndog item to the control panel navigation. Nothing is written to project config until you change a setting.

There is no configuration step. From the moment it installs, every message that goes through Craft's mailer is logged.

Your first logged email

  1. Corndog → Send a test.
  2. Put your own address in To and press Send it.
  3. The screen tells you whether the transport accepted it, and links to the log entry.

Open that entry. It shows the recipients, the subject, both bodies, the headers, the transport that carried it, the Message-ID the mail server handed back, how long the send took, and — the column this plugin exists for — what asked for it to be sent.

Then go and do something on the site that sends a real email: a password reset, a contact form, a test order. Those land in the same log, attributed to Craft, to the plugin, or to the template that sent them.

What gets logged

Everything that goes through Craft::$app->getMailer(), which in practice means everything:

SourceShows in the log as
Craft's own system emailsSystem message: forgot_password and friends
Craft Commerce, Formie, Freeform, Contact Formthe plugin's name
A craft.app.mailer call in a templateTemplate: newsletter/_weekly.twig
A queue jobthe plugin's name, plus the job class
A console commandthe same, with a console context

Anything that bypasses Craft and talks to a mail server itself is invisible to Corndog — and to Craft. See the FAQ.

Permissions

Four permissions ship with the plugin, all under Corndog in the user group settings:

PermissionAllows
View the email logSee the log and the message screens
Read message bodiesSee what the email actually said
Resend messages and send testsSend from inside the control panel
Delete log entriesDelete single entries, and clear what a filter matched

The three below the first are nested under it, so a group needs View the email log for any of them to apply. Read message bodies is worth withholding deliberately: an email log holds password reset links, order details and whatever else your site puts in a message.

Where to go next

  • Configuration — every setting, and the four defaults worth arguing with
  • Usage — the log, resending, tracking, Twig and the console
  • Troubleshooting — when something is missing from the log