WP Mail Logging

Log, view, and resend all emails sent from your WordPress site. Great for resolving email sending issues or keeping a copy for auditing.

v1.16.0Syed BalkhiUpdated 2026-02-19Added Jun 13, 2014300k+ installs94% rating100% support resolved
34
Score
76
Errors
258
Warnings
+0
Change

Category Scores

Security0
Repo94
Performance100
Maintainability51

Top Issues by Category

security216
maintainability86
i18n18

Issues Details

334 issues found in latest scan

WARNING57
WordPress.Security.NonceVerification.Recommended

Processing form data without nonce verification.

ERROR35
WordPress.Security.EscapeOutput.OutputNotEscaped

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '" data-wp-lists='list:$singular'"'.

WARNING29
WordPress.Security.ValidatedSanitizedInput.MissingUnslash

$_GET['order'] not unslashed before sanitization. Use wp_unslash() or similar

WARNING28
WordPress.Security.ValidatedSanitizedInput.InputNotSanitized

Detected usage of a non-sanitized input variable: $_GET['order']

WARNING24
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "bulk_actions-{$this->screen->id}".

WARNING20
WordPress.DB.DirectDatabaseQuery.DirectQuery

Use of a direct database call is discouraged.

WARNING19
WordPress.DB.DirectDatabaseQuery.NoCaching

Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().

WARNING13
WordPress.DB.PreparedSQL.InterpolatedNotPrepared

Use placeholders and $wpdb->prepare(); found interpolated variable $tableName at CREATE TABLE IF NOT EXISTS `$tableName` (\n

WARNING13
WordPress.DB.PreparedSQLPlaceholders.UnquotedComplexPlaceholder

Complex placeholders used for values in the query string in $wpdb->prepare() will NOT be quoted automagically. Found: %1$s.

WARNING11
PluginCheck.Security.DirectDB.UnescapedDBParameter

Unescaped parameter $tableName used in $wpdb->get_results()\n$tableName assigned unsafely at line 118.

WARNING9
WordPress.DB.DirectDatabaseQuery.SchemaChange

Attempting a database schema change is discouraged.

WARNING9
WordPress.Security.ValidatedSanitizedInput.InputNotValidated

Detected usage of a possibly undefined superglobal array index: $_REQUEST[$this->_args['singular']]. Check that the array index exists before using it.

ERROR9
WordPress.WP.I18n.MissingArgDomain

Missing $domain parameter in function call to __().

WARNING8
WordPress.Security.NonceVerification.Missing

Processing form data without nonce verification.

ERROR7
WordPress.WP.I18n.MissingTranslatorsComment

A function call to __() with texts containing placeholders was found, but was not accompanied by a "translators:" comment on the line above to clarify the meaning of the placeholders.

ERROR4
WordPress.Security.EscapeOutput.ExceptionNotEscaped

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"Service '{$key}' is not registered"'.

ERROR4
WordPress.Security.EscapeOutput.UnsafePrintingFunction

All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.

ERROR3
WordPress.DB.PreparedSQL.NotPrepared

Use placeholders and $wpdb->prepare(); found $query

WARNING3
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound

Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$loader".

WARNING3
WordPress.WP.EnqueuedResourceParameters.NotInFooter

In footer ($in_footer) is not set explicitly wp_enqueue_script; It is recommended to load scripts in the footer. Please set this value to `true` to load it in the footer, or explicitly `false` if it should be loaded in the header.

ERROR3
badly_named_files

File and folder names must not contain spaces or special characters.

WARNING3
trademarked_term

The plugin name includes a restricted term. Your chosen plugin name - "WP Mail Logging" - contains the restricted term "wp" which cannot be used at all in your plugin name.

ERROR2
PluginCheck.Security.DirectDB.UnescapedDBParameter

Unescaped parameter $query used in $wpdb->get_results()\n$query assigned unsafely at line 403.

WARNING2
WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedConstantFound

Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "WP_MAIL_LOGGING_PLUGIN_DIR".

ERROR2
WordPress.WP.I18n.MissingSingularPlaceholder

Missing singular placeholder, needed for some languages. See https://codex.wordpress.org/I18n_for_WordPress_Developers#Plurals

Latest Snapshot

Findings

334

Errors

76

Warnings

258

Score History

First score snapshot

First scan completed Jun 19, 2026

v1.16.0 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2

Jun 19, 2026

v1.16.0

34

Latest

Findings
334
Errors
76
Warnings
258
Plugin Check
2.0.0
Model
2026.06-mvp-static-v2

Related Plugins