Email VerifierScoring

Scoring

Quality Score

Every report carries a composite score from 0–100 produced by a transparent additive model: it starts from a 100-point baseline, subtracts a penalty for each negative signal, and adds a small bonus for a known-good provider. The result is clamped to the 0–100 range, then mapped to the state / reason.

Default weights

import { DEFAULT_WEIGHTS } from "@visulima/email-verifier/score";
SignalWeightEffect
disposable60Throwaway / disposable domain
mailboxFull40Mailbox over quota (452 / 552)
mixedScripts30Local-part mixes Unicode scripts (homoglyph risk)
acceptAll25Catch-all domain — existence unverifiable
noReply25no-reply-style address
role25Role / shared mailbox (info@, sales@)
didYouMean20A likely typo domain was detected
character15Irregular local-part characters
deferred15Greylisted / inconclusive SMTP
smtpUnverified10SMTP could not confirm the mailbox
symbol10Unusual Unicode symbols
free5Free mailbox provider
knownProvider5Bonus for a recognized mailbox provider

Overriding weights

Pass weights (a partial override merged over the defaults) to verifyEmail to tune the model to your risk appetite — e.g. treat free providers as neutral and penalise role accounts harder:

import { verifyEmail } from "@visulima/email-verifier";

const report = await verifyEmail("info@example.com", {
    weights: { free: 0, role: 40 },
});

Scoring a report directly

scoreReport is exported standalone so you can re-score an existing report (or a hand-built ScoreInput) without re-running the checks:

import { scoreReport } from "@visulima/email-verifier/score";

const { score, state, reason } = scoreReport(input, { disposable: 80 });
Support

Contribute to our work and keep us going

Community is the heart of open source. The success of our packages wouldn't be possible without the incredible contributions of users, testers, and developers who collaborate with us every day.Want to get involved? Here are some tips on how you can make a meaningful impact on our open source projects.

Ready to help us out?

Be sure to check out the package's contribution guidelines first. They'll walk you through the process on how to properly submit an issue or pull request to our repositories.

Submit a pull request

Found something to improve? Fork the repo, make your changes, and open a PR. We review every contribution and provide feedback to help you get merged.

Good first issues

Simple issues suited for people new to open source development, and often a good place to start working on a package.
View good first issues