@chimanos/deep-email-validator
v0.1.24
Published
Validates emails based on regex, common typos, disposable email blacklists, DNS records and SMTP server response.
Downloads
60
Maintainers
Readme
Email Validator
Validates email addresses based on regex, common typos, disposable email blacklists, DNS records and SMTP server response.
- Validates email looks like an email i.e. contains an "@" and a "." to the right of it.
- Validates common typos e.g. [email protected] using mailcheck.
- Validates email was not generated by disposable email service using disposable-email-domains.
- Validates MX records are present on DNS.
- Validates SMTP server is running.
- Validates mailbox exists on SMTP server.
- Native typescript support.
Getting Started
Compatible with nodejs only. Not browser ready.
Install like so
npm i deep-email-validator --save
or with yarn
yarn add deep-email-validator
Use like so
import { validate } from 'deep-email-validator'
const main = async () => {
let res = await validate('[email protected]')
// {
// "valid": false,
// "reason": "smtp",
// "validators": {
// "regex": {
// "valid": true
// },
// "typo": {
// "valid": true
// },
// "disposable": {
// "valid": true
// },
// "mx": {
// "valid": true
// },
// "smtp": {
// "valid": false,
// "reason": "Mailbox not found.",
// }
// }
// }
// Can also be called with these default options
await validate({
email: '[email protected]',
sender: '[email protected]',
validateRegex: true,
validateMx: true,
validateTypo: true,
validateDisposable: true,
validateSMTP: true,
})
}
If you want to validate domains with TLDs that are not supported by default, you can use additionalTopLevelDomains
option:
await validate({
email: '[email protected]',
sender: '[email protected]',
validateRegex: true,
validateMx: true,
validateTypo: true,
validateDisposable: true,
validateSMTP: true,
additionalTopLevelDomains: [ 'ir' ]
})
For a list of TLDs that are supported by default you can see here.