Make SMTP email sending and delivery easy. Configure Gmail, Outlook, Brevo, SendGrid, Mailgun, SendLayer or connect to any SMTP server.
Category Scores
Top Issues by Category
maintainability91
security88
Issues Details
195 issues found in latest scan
Unescaped parameter $attachment_files_table used in $wpdb->query()\n$attachment_files_table assigned unsafely at line 103.
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$as_queue_runner".
$_POST['sd_code'] not unslashed before sanitization. Use wp_unslash() or similar
Processing form data without nonce verification.
Processing form data without nonce verification.
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '" is less than iv length {$this->iv_num_bytes}"'.
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "admin_head".
Detected usage of a non-sanitized input variable: $_GET['sendlayer_quick_connect_disconnect_result']
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$help_text'.
Translatable string should not be wrapped in HTML. Found: '<p><a href="%1$s" target="_blank" rel="noopener noreferrer">Brevo</a> (formerly Sendinblue) is a transactional email provider and email marketing platform. It’s suitable for businesses of all sizes, as it offers scalable pricing plans that can grow with you. New business owners can use the free plan to send up to 300 emails a day without providing credit card details. As your needs change, you can upgrade to increase your sending limits.</p>'
Detected usage of a possibly undefined superglobal array index: $_POST['swpsmtp_smtp_host']. Check that the array index exists before using it.
unlink() is discouraged. Use wp_delete_file() to delete a file.
The plugin name includes a restricted term. Your chosen plugin name - "Easy WP SMTP – WordPress SMTP and Email Logs: Gmail, Office 365, Outlook, Custom SMTP, and more" - contains the restricted term "wordpress" which cannot be used at all in your plugin name.
Function "wp_timezone()" requires WordPress 5.3.0, but your plugin minimum supported version is WordPress 5.2.0.
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.
Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "swpsmtp_settings".
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.
The use of function set_time_limit() is discouraged
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead.
print_r() found. Debug code should not normally be used in production.
var_dump() found. Debug code should not normally be used in production.
File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: is_writeable().
| Code | Type | Message | Count |
|---|---|---|---|
| WordPress.DB.DirectDatabaseQuery.DirectQuery | WARNING | Use of a direct database call is discouraged. | 35 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | WARNING | Unescaped parameter $attachment_files_table used in $wpdb->query()\n$attachment_files_table assigned unsafely at line 103. | 34 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound | WARNING | Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$as_queue_runner". | 27 |
| WordPress.Security.ValidatedSanitizedInput.MissingUnslash | WARNING | $_POST['sd_code'] not unslashed before sanitization. Use wp_unslash() or similar | 15 |
| WordPress.Security.NonceVerification.Recommended | WARNING | Processing form data without nonce verification. | 13 |
| WordPress.Security.NonceVerification.Missing | WARNING | Processing form data without nonce verification. | 8 |
| missing_direct_file_access_protection | ERROR | PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit; | 7 |
| WordPress.Security.EscapeOutput.ExceptionNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '" is less than iv length {$this->iv_num_bytes}"'. | 6 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "admin_head". | 5 |
| WordPress.Security.ValidatedSanitizedInput.InputNotSanitized | WARNING | Detected usage of a non-sanitized input variable: $_GET['sendlayer_quick_connect_disconnect_result'] | 5 |
| WordPress.Security.EscapeOutput.OutputNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$help_text'. | 4 |
| WordPress.WP.I18n.NoHtmlWrappedStrings | WARNING | Translatable string should not be wrapped in HTML. Found: '<p><a href="%1$s" target="_blank" rel="noopener noreferrer">Brevo</a> (formerly Sendinblue) is a transactional email provider and email marketing platform. It’s suitable for businesses of all sizes, as it offers scalable pricing plans that can grow with you. New business owners can use the free plan to send up to 300 emails a day without providing credit card details. As your needs change, you can upgrade to increase your sending limits.</p>' | 4 |
| WordPress.Security.ValidatedSanitizedInput.InputNotValidated | WARNING | Detected usage of a possibly undefined superglobal array index: $_POST['swpsmtp_smtp_host']. Check that the array index exists before using it. | 3 |
| WordPress.WP.AlternativeFunctions.unlink_unlink | ERROR | unlink() is discouraged. Use wp_delete_file() to delete a file. | 3 |
| trademarked_term | WARNING | The plugin name includes a restricted term. Your chosen plugin name - "Easy WP SMTP – WordPress SMTP and Email Logs: Gmail, Office 365, Outlook, Custom SMTP, and more" - contains the restricted term "wordpress" which cannot be used at all in your plugin name. | 3 |
| wp_function_not_compatible_with_requires_wp | ERROR | Function "wp_timezone()" requires WordPress 5.3.0, but your plugin minimum supported version is WordPress 5.2.0. | 3 |
| PluginCheck.CodeAnalysis.DiscouragedFunctions.load_plugin_textdomainFound | WARNING | 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. | 2 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound | WARNING | Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "swpsmtp_settings". | 2 |
| WordPress.WP.I18n.MissingTranslatorsComment | ERROR | 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. | 2 |
| Squiz.PHP.DiscouragedFunctions.Discouraged | WARNING | The use of function set_time_limit() is discouraged | 1 |
| WordPress.DB.DirectDatabaseQuery.NoCaching | WARNING | Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete(). | 1 |
| WordPress.DateTime.RestrictedFunctions.date_date | ERROR | date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead. | 1 |
| WordPress.PHP.DevelopmentFunctions.error_log_print_r | WARNING | print_r() found. Debug code should not normally be used in production. | 1 |
| WordPress.PHP.DevelopmentFunctions.error_log_var_dump | WARNING | var_dump() found. Debug code should not normally be used in production. | 1 |
| WordPress.WP.AlternativeFunctions.file_system_operations_is_writeable | ERROR | File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: is_writeable(). | 1 |
Latest Snapshot
Findings
195
Errors
32
Warnings
163
Score History
First score snapshot
First scan completed Jun 19, 2026
v2.14.0 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
Jun 19, 2026
v2.14.0
15
Latest
- Findings
- 195
- Errors
- 32
- Warnings
- 163
- Plugin Check
- 2.0.0
- Model
- 2026.06-mvp-static-v2
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Jun 19, 2026Latest | 15 | 195 | 32 | 163 | v2.14.0 | 2.0.0 | 2026.06-mvp-static-v2 |