Mail logging – WP Mail Catcher

Stop from ever losing your emails again! This fast, lightweight plugin (under 140kb in size!) is also useful for debugging or backing up your messages

v2.1.12JWardeeUpdated Added 20k+ installs98% rating100% support resolved
35
Score
232
Errors
157
Warnings
+0
Change

Category Scores

Security0
Repo89
Performance100
Maintainability58

Issues to Review

Prioritized issue groups from the latest Plugin Check scan

389 findings

Security

226

10 issue groups

I18n

94

6 issue groups

Maintainability

63

9 issue groups

ERRORI18nText Domain MismatchMismatched text domain. Expected 'wp-mail-catcher' but got 'WpMailCatcher'.80
Category
I18n
Occurrences
80
Severity
error

Sample message

Mismatched text domain. Expected 'wp-mail-catcher' but got 'WpMailCatcher'.

ERRORSecurityUnsafe Printing FunctionAll output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.52
Category
Security
Occurrences
52
Severity
error

Sample message

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

ERRORSecurityOutput Not EscapedAll output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$attachment['note']'.51
Category
Security
Occurrences
51
Severity
error

Sample message

All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$attachment['note']'.

WARNINGSecurityInput Not SanitizedDetected usage of a non-sanitized input variable: $_GET[$key]30
Category
Security
Occurrences
30
Severity
warning

Sample message

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

WARNINGSecurityMissing Unslash$_GET[$key] not unslashed before sanitization. Use wp_unslash() or similar30
Category
Security
Occurrences
30
Severity
warning

Sample message

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

WARNINGSecurityInput Not ValidatedDetected usage of a possibly undefined superglobal array index: $_POST['attachment_ids']. Check that the array index exists before using it.24
Category
Security
Occurrences
24
Severity
warning

Sample message

Detected usage of a possibly undefined superglobal array index: $_POST['attachment_ids']. Check that the array index exists before using it.

WARNINGMaintainabilityNon Prefixed Variable FoundGlobal variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$additionalHeader".22
Category
Maintainability
Occurrences
22
Severity
warning

Sample message

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

WARNINGSecurityRecommendedProcessing form data without nonce verification.17
Category
Security
Occurrences
17
Severity
warning

Sample message

Processing form data without nonce verification.

ERRORSecurityNot PreparedUse placeholders and $wpdb->prepare(); found $sql13
Category
Security
Occurrences
13
Severity
error

Sample message

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

WARNINGMaintainabilityDirect QueryUse of a direct database call is discouraged.9
Category
Maintainability
Occurrences
9
Severity
warning

Sample message

Use of a direct database call is discouraged.

Show 15 more
ERRORMaintainabilitymissing direct file access protection9
Category
Maintainability
Occurrences
9
Severity
error

Sample message

PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;

WARNINGMaintainabilityNo Caching8
Category
Maintainability
Occurrences
8
Severity
warning

Sample message

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

ERRORSecurityUnescaped DBParameter6
Category
Security
Occurrences
6
Severity
error

Sample message

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

WARNINGMaintainabilityDynamic Hookname Found5
Category
Maintainability
Occurrences
5
Severity
warning

Sample message

Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "GeneralHelper::$actionNameSpace . '_before_error_log_save'".

ERRORI18nMissing Translators Comment5
Category
I18n
Occurrences
5
Severity
error

Sample message

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.

ERRORMaintainabilitydate date4
Category
Maintainability
Occurrences
4
Severity
error

Sample message

date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead.

ERRORI18nNon Singular String Literal Text3
Category
I18n
Occurrences
3
Severity
error

Sample message

The $text parameter must be a single text string literal. Found: '%s' . $suffix

ERRORI18nUnordered Placeholders Text3
Category
I18n
Occurrences
3
Severity
error

Sample message

Multiple placeholders in translatable strings should be ordered. Expected "%1$s, %2$s", but got "%s, %s" in 'This will export messages <strong>%s-%s</strong>'.

WARNINGMaintainabilitytrademarked term3
Category
Maintainability
Occurrences
3
Severity
warning

Sample message

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

WARNINGSecurityMissing2
Category
Security
Occurrences
2
Severity
warning

Sample message

Processing form data without nonce verification.

WARNINGMaintainabilityMissing Version2
Category
Maintainability
Occurrences
2
Severity
warning

Sample message

Resource version not set in call to wp_enqueue_script(). This means new versions of the script may not always be loaded due to browser caching.

ERRORI18nMissing Arg Domain2
Category
I18n
Occurrences
2
Severity
error

Sample message

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

WARNINGI18nload plugin textdomain Found1
Category
I18n
Occurrences
1
Severity
warning

Sample message

load_plugin_textdomain() has been discouraged since WordPress version 4.6. When your plugin is hosted on WordPress.org, you no longer need to manually include this function call for translations under your plugin slug. WordPress will automatically load the translations for you as needed.

WARNINGSecurityUnescaped DBParameter1
Category
Security
Occurrences
1
Severity
warning

Sample message

Unescaped parameter GeneralHelper::$tableName) used in $wpdb-&gt;query()

WARNINGMaintainabilityerror log debug backtrace1
Category
Maintainability
Occurrences
1
Severity
warning

Sample message

debug_backtrace() found. Debug code should not normally be used in production.

Score History

First score snapshot

v2.1.12

35

Latest

Findings
389
Errors
232
Warnings
157
Check
2.0.0

Related Plugins