Search by

omnishield / disposable

GlitchArt

Omnishield Disposable: is this e-mail's domain a disposable one - the free disposable-email-domains list (CC0) shipped in the package, an allow list and a deny list of the site's, subdomains included; no call while a request runs, a command to refresh the list.

1.x-dev 2026-10-09 15:30 UTC

This package is not auto-updated.

Last update: 2026-10-10 14:10:38 UTC


README

Disposable e-mail domains for glitchr/omnishield: is this e-mail's domain a throw-away one. The free list of the disposable-email-domains project (CC0, 9,205 domains on 2026-10-05) ships in the package; the site adds its own allow and deny lists. Nothing is called while a request runs: the list is a file, read once per process.

use Omnishield\Disposable\DisposableGatewayFactory;
use Omnishield\Model\Identity;

$emails = (new DisposableGatewayFactory())->create(['allow' => ['example-school.org']]);

$emails->lookup(new Identity(email: 'someone@eu.mailinator.com'))->known;   // true: mailinator.com, subdomains included
$emails->isDisposable('someone@gmail.com');                                 // false
omnishield:
    gateways:
        emails:
            factory: disposable
            options: { list: '%kernel.project_dir%/var/disposable_domains.txt' }   # a refreshed copy; the shipped one otherwise

Refresh the list - from a cron job, into a file of the application's (one inside vendor/ is put back by the next composer install):

vendor/bin/omnishield-disposable refresh var/disposable_domains.txt
vendor/bin/omnishield-disposable check someone@mailinator.com --list var/disposable_domains.txt

Documentation: the matching, the options, the refresh, the list's licence, what was verified.

License: MIT since 2026-10-09; earlier versions remain published under LGPL-3.0-or-later. The list itself (data/domains.txt): CC0 1.0, by its authors.

Formerly omniguard/disposable, renamed on 2026-10-10 with its family (glitchr/omnishield).