@ph7/real-email-validation
v1.1.2
Published
Email address validation with DNS MX record, SMTP connection and disposable email verification
Downloads
14
Maintainers
Readme
MX Record Email Validation
Verify email address checking MX records, and SMTP connection, check for disposable email addresses and free email providers.
Features
✅ Check email address validity
✅ Check email address domain validity in domain TLD list
✅ Check email address MX records
✅ Check email address SMTP connection
✅ Check email address disposable or burnable status
✅ Check email address free email provider status
🚨 Check domain age and quality score - soon
🚨 Check domain registration status - soon
Use cases
- Increase delivery rate of email campaigns by removing spam emails
- Increase email open rate and your marketing IPs reputation
- Protect your website from spam, bots and fake emails
- Protect your product signup form from fake emails
- Protect your website forms from fake emails
- Protect your self from fraud orders and accounts using fake emails
- Integrate email address verification into your website forms
- Integrate email address verification into your backoffice administration and order processing
API / Cloud Hosted Service
We offer this email verification and validation and more advanced features
in our Scalable Cloud API Service Offering - You could try it here Email Verification
Self-hosting - installation and usage instructions
Installation
Install the module through YARN:
yarn add @ph7/real-email-validation
Or NPM
npm install @ph7/real-email-validation
Examples
import { verifyEmail } from '@ph7/real-email-validation';
const { validFormat, validSmtp, validMx } = await verifyEmail({ emailAddress: '[email protected]', verifyMx: true, verifySmtp: true, timeout: 3000 });
// validFormat: true
// validMx: true
// validSmtp: true
if (validFormat === false || validMx === false || validSmtp === false) {
// invalid/un-existent email address
}
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 { validFormat, validSmtp, validMx } = await verifyEmail({ emailAddress: '[email protected]', verifyMx: true, verifySmtp: true, timeout: 3000 });
// validFormat: true
// validMx: false
// validSmtp: null
A valid Yahoo domain will still return validSmtp
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
.
verifyMx
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:
false
.
verifySmtp
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 existence. Default:false
(recommended).
Disposable email providers database ( ✅ Always Updated )
Free email providers database ( ✅ Always Updated )
Testing
yarn test
Contributing
Please feel free to open an issue or create a pull request and fix bugs or add features, All contributions are welcome. Thank you!