{"id":297083,"date":"2026-08-22T09:19:18","date_gmt":"2026-08-22T09:19:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/easysender-email-verification\/"},"modified":"2026-08-22T12:56:49","modified_gmt":"2026-08-22T12:56:49","slug":"easydmarc-email-verification","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/easydmarc-email-verification\/","author":23422495,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.4","stable_tag":"1.1.4","tested":"7.1","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"EasyDMARC Email Verification","header_author":"Vahan Grkikian","header_description":"Verifies emails using the EasyDMARC API across forms (Elementor, Contact Form 7, Gravity Forms, WooCommerce, WP registration).","assets_banners_color":"","last_updated":"2026-08-22 12:56:49","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/easydmarc.com\/easysender","header_author_uri":"https:\/\/easydmarc.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":49,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.4":{"tag":"1.1.4","author":"easydmarc","date":"2026-08-22 12:56:49"}},"upgrade_notice":{"1.1.0":"<p>Adds bulk CSV verification, export, and a Buy Credits tab. No database changes \u2014 safe to update.<\/p>","1.0.0":"<p>Initial release \u2014 no upgrade steps required.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.4"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Welcome screen \u2014 setup checklist, quick-start guide, and API credential instructions.","2":"API Settings tab \u2014 enter credentials, enable form integrations, and configure allowed statuses.","3":"Logging &amp; Usage tab \u2014 credit usage dashboard with donut chart showing allocated, used, and remaining credits.","4":"Test Email tab \u2014 verify a single address or upload a CSV for bulk verification.","5":"Error Messages tab \u2014 customise the validation messages shown to visitors.","6":"Documentation tab \u2014 quick links to API docs, legal &amp; privacy, support, and supported form plugins list.","7":"Buy Credits tab \u2014 browse monthly verification plans, see current balance, and subscribe."}},"plugin_section":[],"plugin_tags":[1152,76538,18971,4248,130711],"plugin_category":[],"plugin_contributors":[276928],"plugin_business_model":[],"class_list":["post-297083","plugin","type-plugin","status-publish","hentry","plugin_tags-contact-form-7","plugin_tags-elementor","plugin_tags-email-verification","plugin_tags-spam-prevention","plugin_tags-wpforms","plugin_contributors-easydmarc","plugin_committers-easydmarc"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/easydmarc-email-verification.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>EasyDMARC Email Verification<\/strong> connects your WordPress forms to the EasyDMARC email verification API and validates every submitted email address before the form is accepted. It helps you block invalid, disposable, risky, and undeliverable addresses from entering your system.<\/p>\n\n<p>All verification requests are performed server-side \u2014 no JavaScript is sent to the browser. Credentials are encrypted with AES-256 using your site's <code>AUTH_KEY<\/code>.<\/p>\n\n<h4>Supported form plugins<\/h4>\n\n<ul>\n<li>Elementor Pro Forms<\/li>\n<li>Contact Form 7<\/li>\n<li>WPForms<\/li>\n<li>Ninja Forms<\/li>\n<li>Fluent Forms (free and Pro)<\/li>\n<li>Gravity Forms<\/li>\n<li>SureForms<\/li>\n<\/ul>\n\n<h4>How it works<\/h4>\n\n<ol>\n<li>A visitor submits a form containing an email field.<\/li>\n<li>The plugin sends the address to the EasyDMARC API for real-time verification.<\/li>\n<li>If the result is not in your allowed list (e.g. you block \"undeliverable\"), the form is rejected and a clear error message is shown under the email field.<\/li>\n<li>Deliverable addresses pass through normally.<\/li>\n<\/ol>\n\n<h4>Key features<\/h4>\n\n<ul>\n<li><strong>Per-status control<\/strong> \u2014 independently allow or block deliverable, risky, undeliverable, and unknown results.<\/li>\n<li><strong>Allow on API error<\/strong> \u2014 optionally permit submissions when the verification service is unavailable.<\/li>\n<li><strong>Custom error messages<\/strong> \u2014 set your own text for invalid, risky, and API-error scenarios.<\/li>\n<li><strong>Test Email tab<\/strong> \u2014 verify any address from the admin panel and inspect the raw API result.<\/li>\n<li><strong>Bulk CSV verification<\/strong> \u2014 upload a CSV file with up to 500,000 email addresses, verify them in bulk, view a visual breakdown (donut chart), and export filtered results as CSV.<\/li>\n<li><strong>Buy Credits tab<\/strong> \u2014 browse available EasyDMARC plans, see your current balance, and subscribe directly from the WordPress admin.<\/li>\n<li><strong>Credit usage dashboard<\/strong> \u2014 see your allocated credits, current balance, and usage at a glance.<\/li>\n<li><strong>Debug logging<\/strong> \u2014 errors are written to <code>debug.log<\/code> (with email addresses redacted) when <code>WP_DEBUG_LOG<\/code> is enabled.<\/li>\n<\/ul>\n\n<h4>Privacy<\/h4>\n\n<p>Email addresses are sent to <code>https:\/\/sender-api.easydmarc.com<\/code> for verification. See EasyDMARC's legal and privacy information at https:\/\/easydmarc.com\/legal for details on how verification data is handled.<\/p>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li>WordPress 5.8 or later<\/li>\n<li>PHP 7.4 or later<\/li>\n<li>OpenSSL PHP extension<\/li>\n<li>An EasyDMARC account with an API Client ID and Client Secret<\/li>\n<li>One or more supported form plugins (Elementor Pro, Contact Form 7, WPForms, Ninja Forms, Fluent Forms, Gravity Forms, or SureForms)<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>easydmarc-email-verification<\/code> folder to <code>\/wp-content\/plugins\/<\/code> and activate it, <strong>or<\/strong> search for \"EasyDMARC Email Verification\" in <strong>Plugins \u2192 Add New<\/strong> and click Install.<\/li>\n<li>Go to <strong>EasyDMARC \u2192 Settings<\/strong> and open the <strong>API Settings<\/strong> tab.<\/li>\n<li>Enter your EasyDMARC <strong>Client ID<\/strong> and <strong>Client Secret<\/strong>.<\/li>\n<li>Click <strong>Verify API Key<\/strong> to confirm your credentials are working.<\/li>\n<li>Enable the form integrations you use and configure which verification statuses are allowed.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20get%20the%20api%20credentials%3F\"><h3>Where do I get the API credentials?<\/h3><\/dt>\n<dd><p>Log in to your EasyDMARC account at https:\/\/easydmarc.com\/ and navigate to the EasySender section to generate your Client ID and Client Secret.<\/p><\/dd>\n<dt id=\"does%20this%20work%20without%20a%20paid%20easydmarc%20plan%3F\"><h3>Does this work without a paid EasyDMARC plan?<\/h3><\/dt>\n<dd><p>A free account includes a limited number of verification credits. Paid plans are required for higher volumes. See https:\/\/easydmarc.com\/pricing\/ for details.<\/p><\/dd>\n<dt id=\"will%20the%20plugin%20block%20my%20forms%20if%20the%20api%20is%20down%3F\"><h3>Will the plugin block my forms if the API is down?<\/h3><\/dt>\n<dd><p>No \u2014 if you enable <strong>Allow submission if verification service is unavailable<\/strong> in the settings, form submissions will pass through normally when the API cannot be reached.<\/p><\/dd>\n<dt id=\"which%20email%20statuses%20should%20i%20allow%3F\"><h3>Which email statuses should I allow?<\/h3><\/dt>\n<dd><p>At minimum, enable <strong>deliverable<\/strong>. Enabling <strong>risky<\/strong> is optional \u2014 risky addresses exist but may bounce. We recommend blocking <strong>undeliverable<\/strong> and <strong>unknown<\/strong> to keep your list clean.<\/p><\/dd>\n<dt id=\"are%20email%20addresses%20stored%20or%20logged%3F\"><h3>Are email addresses stored or logged?<\/h3><\/dt>\n<dd><p>No email addresses are stored by this plugin. Debug log entries automatically redact all email addresses before writing to the log file.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20compatible%20with%20caching%20plugins%3F\"><h3>Is the plugin compatible with caching plugins?<\/h3><\/dt>\n<dd><p>Yes. All verification requests are made server-side during form submission (a POST request), which bypasses page caching.<\/p><\/dd>\n<dt id=\"where%20can%20i%20report%20a%20bug%20or%20request%20a%20feature%3F\"><h3>Where can I report a bug or request a feature?<\/h3><\/dt>\n<dd><p>Please open a thread in the plugin's support forum on WordPress.org.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Fixed: Credentials saved via the \"Verify API Key\" button are now encrypted before storage (security fix).<\/li>\n<li>Fixed: All remaining \"Unauthorized.\" AJAX error messages are now translatable.<\/li>\n<li>Fixed: Error message in usage tab now inserted as text to prevent potential XSS.<\/li>\n<li>Improved: Renamed all internal identifiers from easysender_ to easydmarc_ across all files for consistency with the plugin slug.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Fixed: Text domain updated to easydmarc-email-verification across all PHP files to match the plugin slug.<\/li>\n<li>Improved: Bulk verification results now stored in per-chunk transients instead of a single large transient, reducing wp_options write overhead.<\/li>\n<li>Fixed: constants.php now contains a proper ABSPATH guard instead of being empty.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Fixed: Tab label in admin navigation now properly escaped with esc_html().<\/li>\n<li>Improved: Bulk CSV job now stores the email list in a separate transient (written once on upload, never re-serialized on chunk updates), reducing wp_options write size during verification.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Fixed: All API and account URLs now point to the production EasyDMARC endpoints.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: Bulk CSV email verification \u2014 upload up to 500,000 addresses, verify in chunks, and view a visual breakdown with donut chart.<\/li>\n<li>New: Export modal \u2014 filter results by status (deliverable, risky, undeliverable, unknown) with sub-filters (free account, role account, disposable, full inbox) and download as CSV.<\/li>\n<li>New: Buy Credits tab \u2014 browse EasySender plans with pricing, see current balance, and subscribe directly from the admin panel.<\/li>\n<li>New: Dynamic organisation ID retrieval via the EasySender \/auth\/me API endpoint (replaces hardcoded value).<\/li>\n<li>Improved: Test Email tab redesigned with single-email test and bulk upload sections.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Integrations: Elementor Pro Forms, Contact Form 7, WPForms, Ninja Forms, Fluent Forms (free + Pro), Gravity Forms, SureForms.<\/li>\n<li>AES-256-CBC + HMAC-SHA256 credential encryption using WordPress AUTH_KEY.<\/li>\n<li>Per-status allow\/block rules (deliverable, risky, undeliverable, unknown).<\/li>\n<li>Allow-on-API-error fallback option.<\/li>\n<li>Custom error messages per scenario.<\/li>\n<li>Test Email admin tab with live API result.<\/li>\n<li>Credit usage dashboard with visual donut chart.<\/li>\n<li>Debug logging with automatic email redaction.<\/li>\n<li>Plugin data cleanup on uninstall.<\/li>\n<\/ul>","raw_excerpt":"Validate email addresses in real time inside WordPress forms using the EasyDMARC email verification API.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/297083","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=297083"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/easydmarc"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=297083"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=297083"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=297083"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=297083"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=297083"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=297083"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}