mailck

golang library for smtp based email validation

Github stars Tracking Chart

mailck - SMTP mail validation

golang library for email validation

Build Status
Go Report Card
Coverage Status

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

Preconditions

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.

Usage

GoDoc

Do all checks at once:

result, _ := mailck.Check("noreply@mancke.net", "foo@example.com")
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
  }
}

License

MIT Licensed

Main metrics

Overview
Name With Ownersmancke/mailck
Primary LanguageGo
Program languageGo (Language Count: 3)
Platform
License:MIT License
所有者活动
Created At2017-03-02 18:22:14
Pushed At2021-04-14 06:34:30
Last Commit At2021-04-14 08:34:30
Release Count0
用户参与
Stargazers Count54
Watchers Count3
Fork Count11
Commits Count54
Has Issues Enabled
Issues Count5
Issue Open Count3
Pull Requests Count6
Pull Requests Open Count0
Pull Requests Close Count0
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private