{"id":354836,"date":"2026-08-18T11:33:18","date_gmt":"2026-08-18T11:33:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/block-disposable-emails\/"},"modified":"2026-08-19T17:38:52","modified_gmt":"2026-08-19T17:38:52","slug":"peneira-disposable-email-blocker","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/peneira-disposable-email-blocker\/","author":131758,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.4","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"Peneira Disposable Email Blocker","header_author":"Jes\u00fas Amieiro","header_description":"Blocks disposable\/throwaway email addresses across registration, comments, and contact\/commerce forms.","assets_banners_color":"225186","last_updated":"2026-08-19 17:38:52","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/jesusamieiro.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":51,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"Amieiro","date":"2026-08-19 17:38:52"}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3652692,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3652692,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3652692,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3652692,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3655116,"resolution":false,"location":"assets","locale":"","contents":"{\"landingPage\":\"\\\/wp-admin\\\/options-general.php?page=peneira-disposable-email-blocker\",\"preferredVersions\":{\"php\":\"8.2\",\"wp\":\"latest\"},\"steps\":[{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"},{\"step\":\"installPlugin\",\"options\":{\"activate\":true},\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"peneira-disposable-email-blocker\"}}]}"}},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3652692,"resolution":"1","location":"assets","locale":"","width":2880,"height":5428},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3652692,"resolution":"2","location":"assets","locale":"","width":2880,"height":1800}},"screenshots":{"1":"The settings page: surfaces, update frequency, and status.","2":"A blocked registration attempt."}},"plugin_section":[],"plugin_tags":[12886,2182,58672,599,12887],"plugin_category":[44,54,58],"plugin_contributors":[209353],"plugin_business_model":[],"class_list":["post-354836","plugin","type-plugin","status-publish","hentry","plugin_tags-disposable-email","plugin_tags-email-validation","plugin_tags-fake-email","plugin_tags-spam","plugin_tags-temporary-email","plugin_category-discussion-and-community","plugin_category-security-and-spam-protection","plugin_category-user-management","plugin_contributors-amieiro","plugin_committers-amieiro"],"banners":{"banner":"https:\/\/ps.w.org\/peneira-disposable-email-blocker\/assets\/banner-772x250.png?rev=3652692","banner_2x":"https:\/\/ps.w.org\/peneira-disposable-email-blocker\/assets\/banner-1544x500.png?rev=3652692","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/peneira-disposable-email-blocker\/assets\/icon-128x128.png?rev=3652692","icon_2x":"https:\/\/ps.w.org\/peneira-disposable-email-blocker\/assets\/icon-256x256.png?rev=3652692","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/peneira-disposable-email-blocker\/assets\/screenshot-1.png?rev=3652692","caption":"The settings page: surfaces, update frequency, and status."},{"src":"https:\/\/ps.w.org\/peneira-disposable-email-blocker\/assets\/screenshot-2.png?rev=3652692","caption":"A blocked registration attempt."}],"raw_content":"<!--section=description-->\n<p>Peneira Disposable Email Blocker rejects throwaway email addresses everywhere a visitor can submit one:<\/p>\n\n<ul>\n<li>WordPress registration, login, profile email change, and password reset<\/li>\n<li>The native comment form<\/li>\n<li>Contact Form 7, WooCommerce, Gravity Forms, WPForms, Forminator, Ninja Forms, and Fluent Forms (each loaded only when active)<\/li>\n<\/ul>\n\n<p>The block list and a companion allowlist come from the open-source amieiro\/disposable-email-domains project. Domains are stored in indexed database tables and imported without PHP timeouts. The bundled list works out of the box with no external requests. Optionally, enable automatic list updates (off by default) on a schedule you choose (daily\/weekly\/biweekly\/monthly), or refresh on demand from the settings page. Subdomains of blocked domains are also blocked; an allowlist (upstream plus your own) prevents false positives.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the GitHub REST API (api.github.com) to download the disposable-domain block list and allowlist from the amieiro\/disposable-email-domains repository.<\/p>\n\n<ul>\n<li>What is sent: a standard HTTPS GET request (and a conditional-request ETag header). No personal data, site data, or user data is transmitted.<\/li>\n<li>When: only when you click \"Check for updates now\", or on your chosen schedule after you enable automatic list updates (a setting that is off by default). No requests are made otherwise; the plugin is fully functional with the bundled lists.<\/li>\n<li>Endpoints: https:\/\/api.github.com\/repos\/amieiro\/disposable-email-domains\/contents\/denyDomains.txt , ...\/allowDomains.txt<\/li>\n<\/ul>\n\n<p>GitHub's terms: https:\/\/docs.github.com\/site-policy\/github-terms\/github-terms-of-service\nGitHub's privacy statement: https:\/\/docs.github.com\/site-policy\/privacy-policies\/github-privacy-statement<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/peneira-disposable-email-blocker<\/code> or install from the Plugins screen.<\/li>\n<li>Activate it. On activation the bundled list imports immediately; on slow servers any remainder finishes in the background within moments.<\/li>\n<li>Visit Settings \u2192 Peneira Disposable Email Blocker to choose surfaces, optionally enable automatic list updates, and manage local lists.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20block%20subdomains%3F\"><h3>Does it block subdomains?<\/h3><\/dt>\n<dd><p>Yes. If <code>mailinator.com<\/code> is blocked, <code>anything.mailinator.com<\/code> is blocked too.<\/p><\/dd>\n<dt id=\"how%20do%20i%20prevent%20a%20legitimate%20domain%20from%20being%20blocked%3F\"><h3>How do I prevent a legitimate domain from being blocked?<\/h3><\/dt>\n<dd><p>Add it to the Local allow list in the settings page; allowlist entries always win.<\/p><\/dd>\n<dt id=\"will%20the%20import%20time%20out%20on%20large%20sites%3F\"><h3>Will the import time out on large sites?<\/h3><\/dt>\n<dd><p>No. The ~200k-entry list imports in batches within a strict time budget (about 10 seconds); anything left over continues via WP-Cron and the result is swapped in atomically.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Block disposable\/throwaway email addresses across registration, comments, and the major contact and commerce form plugins.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/354836","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=354836"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/amieiro"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=354836"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=354836"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=354836"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=354836"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=354836"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=354836"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}