email-deep-validator-ts
v1.0.1
Published
TypeScript package to verify email address checking MX records, and SMTP connection.
Downloads
21
Readme
email-deep-validator-ts
Verify email address checking MX records, and SMTP connection.
Installation
Install the module through NPM:
$ npm install email-deep-validator-ts --save
Requires Node 7.6 or above
Examples
Include the module, create a new EmailValidator
object and call verify
method:
const EmailValidator = require('email-deep-validator-ts');
const emailValidator = new EmailValidator();
const { wellFormed, validDomain, validMailbox } = await emailValidator.verify('[email protected]');
// wellFormed: true
// validDomain: true
// validMailbox: true
When a domain does not exist or has no MX records, the domain validation will fail, and the mailbox validation will return null
because it could not be performed:
const { wellFormed, validDomain, validMailbox } = await emailValidator.verify('[email protected]');
// wellFormed: true
// validDomain: false
// validMailbox: null
A valid Yahoo domain will still return validMailbox
true because their SMTP servers do not allow verifying if a mailbox exists.
Configuration options
timeout
Set a timeout in seconds for the smtp connection. Default: 10000
.
verifyDomain
Enable or disable domain checking. This is done in two steps:
- Verify that the domain does indeed exist;
- Verify that the domain has valid MX records.
Default: true
.
verifyMailbox
Enable or disable mailbox checking. Only a few SMTP servers allow this, and even then whether it works depends on your IP's reputation with those servers. This library performs a best effort validation:
- It returns
null
for Yahoo addresses, for failed connections, for unknown SMTP errors. - It returns
true
for valid SMTP responses. - It returns
false
for SMTP errors specific to the address's formatting or mailbox existance.
Default: true
.
Testing
$ npm test
Changelog
2.0.0
- (BREAKING) Requires node 7.6 for
async
/await
. - (BREAKING) Instead of throwing on any invalidation, the lib now returns an object with which validations failed.
- (BREAKING) Configuration property
verifyMxRecords
renamed toverifyDomain
. - (BREAKING) Configuration property
verifySmtpConnection
renamed toverifyMailbox
.