golang library for email validation
This library allows you to check if an email address is realy valid:
- Syntax check
- Blacklist of disposable mailservers (e.g. mailinator.com)
- SMTP mailbox check
Make sure, that the ip address you are calling from is not black listed. This is e.g. the case if the ip is a dynamic IP. Also make sure, that you have a correct reverse dns lookup for your ip address, matching the hostname of your from adress. Alternatively use a SPF DNS record entry matching the host part of the from address.
In case of a blacklisting, the target mailserver may respond with an SMTP 554
or just let you run into a timout.
Do all checks at once:
result, _ := mailck.Check("[email protected]", "[email protected]")
switch {
case result.IsValid():
// valid!
// the mailserver accepts mails for this mailbox.
case result.IsError():
// something went wrong in the smtp communication
// we can't say for sure if the address is valid or not
case result.IsInvalid():
// invalid for some reason
// the reason is contained in result.ResultDetail
// or we can check for different reasons:
switch (result) {
case mailck.InvalidDomain:
// domain is invalid
case mailck.InvalidSyntax:
// e-mail address syntax is invalid
}
}
MIT Licensed