Detect disposable email addresses in Java/Kotlin. Works offline with a bloom filter. Checks MX records online via DNS-over-HTTPS.
Available on GitHub Packages.
<repository>
<id>github</id>
<url>https://<github_user>:<github_personal_access_token>@maven.pkg.github.com/valarpirai/disposable-emails-validator-java</url>
</repository><dependency>
<groupId>org.valarpirai</groupId>
<artifactId>disposable-email</artifactId>
<version>{version}</version>
</dependency>The library ships with a bundled domain list. Call this once at startup to fetch the latest one.
DisposableEmail.refreshDisposableDomains()DisposableEmail.isDisposable("hello@gmail.com") // false
DisposableEmail.isDisposable("hello@mailsac.com") // trueDisposableEmail.hasValidMailDomain("hello@mailsac.com") // true — disposable but has MX
DisposableEmail.hasValidMailDomain("god.com") // false — no MX recordval details = DisposableEmail.getDomainDetails("mailsac.com")
details.disposableDomain // true
details.mxRecordPresent // trueDisposableEmail.hasValidMailDomain("hello@gmail.com", DnsResolverType.CLOUD_FLARE)
DisposableEmail.hasValidMailDomain("hello@gmail.com", DnsResolverType.GOOGLE)DisposableEmail.validEmail("user@example.com") // true
DisposableEmail.validEmail("notanemail") // false
DisposableEmail.validEmail("") // falseDisposableEmail.addDomainToWhitelist("mailsac.com")
DisposableEmail.isDisposable("hello@mailsac.com") // false
DisposableEmail.removeDomainFromWhitelist("mailsac.com")
DisposableEmail.isDisposable("mailsac.com") // trueDisposableEmail.addDomainToBlacklist("gmail.com")
DisposableEmail.isDisposable("hello@gmail.com") // true
DisposableEmail.removeDomainFromBlacklist("gmail.com")
DisposableEmail.isDisposable("gmail.com") // true