GoEmailDBReader

module
v1.0.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 5, 2025 License: MIT

README

IPQualityScore Email Validation & Verification Golang DB Reader

Flat File Version 1.0

Our flat file email validation database allows you to lookup important details about any email address using a straight forward library. Simply install the reader, download a database and instantly check email addresses against our large volume of data.

Click here to see the full Golang IPQualityScore flat file email validation database documentation. You may also find the information on our email verification / email validation serivce helpful.
Installation

Installation can be achieved via go's built in package manager like such:


go get github.com/IPQualityScore/GoEmailDBReader
			
Usage

Using our flat file database system to lookup an email address is simple:


lookup := emaillookup.EmailLookup{Path: "./tree/"}

email := "noreply@ipqs.com"

record := lookup.LookupEmail(email) if record != nil { fmt.Println("found data:", record) for _, v := range record.Data { fmt.Println(v.ToString()) }

fraud := record.FraudScore()
if fraud != nil {
    	fmt.Println("Fraud Score:", fraud.FraudScore)
} else {
	fmt.Println("Could not find fraud score!")
}

}

IPQSRecord Struct Fields

Depending on which database file you receive some of these fields may be unavailable. If the field in question is unavailable in your database it will default to Golang's default value for that type.

Field Type Description
record.Base().Valid bool Does this email address appear valid?
record.Base().Disposable bool Is this email suspected of belonging to a temporary or disposable mail service? Usually associated with fraudsters and scammers.
record.Base().SmtpScore byte Validity score of email server's SMTP setup. Range: "0" to "3".

0x00 = mail server exists, but is rejecting all mail
0x01 = mail server exists, but is showing a temporary error
0x02 = mail server exists, but accepts all email
0x03 = mail server exists and has verified the email address
record.Base().Suspect bool This value indicates if the mail server is currently replying with a temporary mail server error or if the email verification system is unable to verify the email address due to a broken SMTP handshake. This status will also be true for "catch all" email addresses as defined below. If this value is true, then we suspect the "valid" result may be tainted and there is not a guarantee that the email address is truly valid. This status is rarely true for popular mailbox providers and typically only returns as true for a small percentage of business mail servers.
record.Base().CatchAll bool Is this email likely to be a "catch all" where the mail server verifies all emails tested against it as valid? It is difficult to determine if the address is truly valid in these scenarios, since the email's server will not confirm the account's status.
record.Base().Deliverability byte How likely is this email to be delivered to the user and land in their mailbox. Values can be "high", "medium", "low" or "none".

0x00 = none
0x01 = low
0x02 = medium
0x03 = high
record.FraudScore().FraudScore int The overall Fraud Score of the user based on the email's reputation and recent behavior across the IPQS threat network. Fraud Scores >= 75 are suspicious, but not necessarily fraudulent.
record.Leaked().Leaked bool Was this email address associated with a recent database leak from a third party? Leaked accounts pose a risk as they may have become compromised during a database breach.
record.RecentAbuse().RecentAbuse bool This value will indicate if there has been any recently verified abuse across our network for this email address. Abuse could be a confirmed chargeback, fake signup, compromised device, fake app install, or similar malicious behavior within the past few days.
record.UserVelocity().UserVelocity bool Frequency at which this email address makes legitimate purchases, account registrations, and engages in legitimate user behavior online. Values can be "high", "medium", "low", or "none". Values of "high" or "medium" are strong signals of healthy usage. New email addresses without a history of legitimate behavior will have a value as "none". This field is restricted to higher plan tiers.
record.FirstSeen().FirstSeen time.Time When this email address was first seen online.
record.DomainAge().DomainAge time.Time Date when this domain was registered.
record.DomainCommon().DomainCommon bool Is this email from common free email providers? ("gmail.com", "yahoo.com", "hotmail.com", etc.)
record.DomainVelocity().DomainVelocity bool Indicates the level of legitimate users interacting with the email address domain. Values can be "high", "medium", "low", or "none". Domains like "IBM.com", "Microsoft.com", "Gmail.com", etc. will have "high" scores as this value represents popular domains. New domains or domains that are not frequently visited by legitimate users will have a value as "none". This field is restricted to upgraded plans.
record.DomainDisposable().DomainDisposable bool Is this domain suspected of belonging to a temporary or disposable mail service? Usually associated with fraudsters and scammers.

Directories

Path Synopsis
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL